ATTACHEDWINDOWAnInterlisp-DpackageformanipulatingwindowsingroupsWrittenby:RichardR.BurtonLastmodified:June2,1984,vanMelleLocatedon:Sources>ATTACHEDWINDOW.DCOMIntroductionATTACHEDWINDOWisapackagedesignedtomakeiteasytomanipulateagroupofwindowasaunit.StandardoperationslikeMOVE,RESHAPE,OPENandCLOSEcanbedonesothatitappearstotheuserasifthewindowsareasingleentity.Eachcollectionofattachedwindowshasonemainwindowandanynumberofotherwindowsthatare"attached"toit.Movingorreshapingthemainwindowcausesalloftheattachedwindowstobemovedorreshapedaswell.Movingorreshapinganattachedwindowdoesnotaffectthemainwindow.Theinitialmotivationforattachedwindowswastoallowmultiplemenustobeassociatedwiththesamewindowbutthereisnorestrictiononwhatwindowscanbeattached.(ATTACHWINDOWWINDOWTOATTACHMAINWINDOWEDGEPOSITIONONEDGEWINDOWCOMACTION)AssociatesWINDOWTOATTACHwithMAINWINDOWsothatshape,move,close,shrinkandexpandoperationsdonetoMAINWINDOWarealsodonetoWINDOWTOATTACH.ATTACHWINDOWmovesWINDOWTOATTACHtoitspositionrelativetoMAINWINDOWbutdoesnotopenit.EDGEandPOSITIONONEDGEindicatewhereWINDOWTOATTACHistobepositioned.TheargumentEDGEdetermineswhichedge:TOP,BOTTOM,LEFT,orRIGHT.Thedefault,usedifEDGEisNIL,isTOP.TheargumentPOSITIONONEDGEdetermineswherealongedgethewindowispositioned:JUSTIFYmeansthattheattachedwindowistofilltheentireedge.ATTACHWINDOWreshapesthewindowifnecessary;LEFTorRIGHTfortheleftorright(foraTOPorBOTTOMedge);BOTTOMorTOPforthebottomortop(ofaLEFTorRIGHTedge);CENTERforthecenteroftheedge.ThedefaultforPOSITIONONEDGEisJUSTIFY.ThesizethatisfilledbythejustificationincludestheextentofanyotherwindowsthathavealreadybeenattachedtoMAINWINDOW.Thus(ATTACHWINDOWAMW'RIGHT'JUSTIFY)followedby(ATTACHWINDOWBMW'TOP'JUSTIFY)willputBacrossthetopofbothMWandA.WINDOWCOMACTIONprovidesaconvenientwayofsettingthewaytheattachedwindowrespondstorightbuttoning.IfWINDOWCOMACTIONisMAIN,theDOWINDOWCOMFNofWINDOWTOATTACHissettoDOMAINWINDOWCOMFN.IfWINDOWCOMACTIONisHERE,theDOWINDOWCOMFNofWINDOWTOATTACHisnotchanged.IfWINDOWCOMACTIONisLOCALCLOSE,theDOWINDOWCOMFNofWINDOWTOATTACHissettoDOATTACHEDWINDOWCOM2.Otherwise,theDOWINDOWCOMFNofWINDOWTOATTACHissettoDOATTACHEDWINDOWCOM.Thesefunctionsaredescribedbelowinthesectionon"attachedwindowmenucommands."(DETACHWINDOWWINDOWTODETACH)DetachesWINDOWTODETACHfromitsmainwindow.ReturnsadottedpairwhoseCARisEDGEandwhoseCDRisPOSITIONONEDGEifWINDOWTODETACHwasanattachedwindow.ReturnsNILotherwise.ThisdoesnotcloseWINDOWTODETACH.BehavioronstandardwindowoperationsWhenawindowoperation,suchasmovingorclearing,isperformedonawindow,thereisaquestionaboutp c/!bq!bb 3cbrb3ib _s __0 "'). 1U68S@^B!EeFIJJS Qf QfQfkY!&#[$h(2,I,0 67=BDGsJJQf O OO$'=)k 013,38:"@8BqEJJO N NN72d "\$Z(*02T567;a=2C{ExJJN Lt LtLt: [#$ &*p 1"338~=@BE{JJLt J JJ(k !& ([+,. 56:?ACIJ HBr HBHB HBuHB #M ,0 =V=VHB F FFjFrFFsFFD D D WWD uD $D sD %J(K(KD uD 2D sD 3R47;?CyGJ J D BzBzBzJ  ""BzuBz -YBzsBz.o1S48::BzuBz IqBzsBzJ JxJxBzArAA AsA""AuA -AsA/3i7@HJJA?u?? \?s?dl !?=2u=2=2=2s=2=2u=2 =2s=2!%M((=2u=2 4$=2s=246 79( >?DAFF=2u=2I=2s=2JJ=2;;; 22;r; ;s;!!;r;';s;((;r;,#;s;,.o.o;r;3);s;3456;>??;r;D ;s;DfEE;r;H2;s;HJ J ;:r::m:s:xf!S!S:u: -:s:.I 7=KBGCJJ:8l8l8l 8lc5rc55D5s5%#'/6%9*XD G J!J!&%L%L%L %Lu%L +L%Ls%L,-m1G1G%Lr%L ?1ADJ J %L###w#s# h#3#3#r# /:1.38q@#s#AEHJJ#"+"+"+<"i#"+u`s ! ')**k-/137;?A%C HHJJ^u^^`^s^ W W^r^#^s^%m&^r^(v 3^s^5S77^u^ Cj^s^E G`HJJ^r/s ##u0&s133r7s8vAPE~E~rHsHJ J lrllDlsl!lrl!lsl#0&&lrl 2Llsl37R7Rlul ClslDHJJl1r"ms" ))k,U/V144u CnrC rq r r $ . rr r. r ~s ~~ P^$&]+-356;?T@AGJJ~ q?[0whetherornotthatoperationalsobeperformedonthewindowsattachedtoitorperformedonthewindowitisattachedto.Thefollowingarethedefaultbehaviorsofmainandattachedwindowsunderthewindowoperationswheninvokedprogrammatically,e.g.,fromthefunctionsMOVEW,SHAPEW,etc.ThebehaviorwhenanoperationisinvokedfromthewindowmenudependsontheWINDOWCOMACTIONargumenttoATTACHWINDOW,orultimatelythewindow'sDOWINDOWCOMFNproperty.Mentionof"menu"belowassumesthatthewindowwasattachedusingthedefault(NIL)WINDOWCOMACTION.Thebehaviorforanyparticularoperationcan,ofcourse,bechangedforparticularwindowsbysettingthestandardwindowproperties(e.g.,MOVEFNorCLOSEFN)oftheparticularattachedwindow.Move:Ifthemainwindowmoves,allattachedwindowsmovewithit,andtherelativepositioningbetweenthemainwindowandtheattachedwindowsismaintained.Iftheregionisdeterminedinteractively,thepromptregionforthemoveistheunionoftheextentofthemainwindowandallattachedwindows.MOVEWmovesanattachedwindowwithoutaffectingthemainwindow.TheMovecommandinthewindowmenuisbydefaultpassedontothemainwindow,sothatallwindowsinthegroupmove.Reshape:Ifthemainwindowisreshaped,theminimumsizeofitandallofitsattachedwindowsisusedastheminimumofthespacefortheresult.Anyspacegreaterthantheminimumisdistributedamongthemainwindowanditsattachedwindows.SHAPEWreshapesanattachedwindowindependently.TheShapecommandinthewindowmenuisbydefaultpassedontothemainwindow.Close:Ifthemainwindowisclosed,alloftheattachedwindowsareclosedalsoandthelinksfromtheattachedwindowstothemainwindowarebroken.Thisisnecessaryforthewindowstobegarbagecollected.CLOSEWclosesanattachedwindowwithoutaffectingthemainwindow.Closeinthewindowmenuisbydefaultpassedontothemainwindow.IfWINDOWCOMACTIONofLOCALCLOSEwasspecifiedinthecalltoATTACHWINDOW,themenuCloseoperatesindependently.Notethatclosinganattachedwindowdoesnotdetachit.Open:Ifthemainwindowisopened,itopensallattachedwindowsandreestablisheslinksfromthemtothemainwindow.Attachedwindowscanbeopenedindependentlyandthisdoesnotaffectthemainwindow.Shrink:Thecollectionofwindowsshrinksasagroup.TheSHRINKFNsoftheattachedwindowsareevaluatedbuttheonlyicondisplayedistheoneforthemainwindow.{Howdoesthesystemknowthattheattachedwindowsareshrunkenratherthanclosed?Itdoesn't.Doesthismakeanydifference?}Redisplay:Themainorattachedwindowscanberedisplayedindependently.Totop:Ifanymainorattachedwindowisbroughttothetop,alloftheotherwindowsarebroughttothetopalso.Expand:Expandinganyofthewindowsexpandsthewholecollection.Scrolling:Allofthewindowsinvolvedinthegroupscrollindependently.Clear:Allwindowsclearindependentlyofeachother.AttachedwindowmenucommandsThequestionofhowtohandlethewindowcommandmenuofanyparticularwindow(eitherbyrightbuttoningorbyacalltothefunctionDOWINDOWCOM)ishandledbythewindow'sDOWINDOWCOMFNproperty.TheWINDOWCOMACTIONargumenttoATTACHWINDOW c8 as aaV!#')+1b68?9p;ACEJJa `9 `9`9 . 7 ""h&- .2 4:?CEJJ`9 ^ ^^ l%'*-$22^r^8^s^9I9I^r^?L^s^?B^ [ [[^$&e,04D:a?5EHJJ[ Zyu ZyZyjZysZyZyrZy 'ZysZy(b) .0p44ZyrZy @(ZysZy@DENIJJZy X XX"%E*.0945)XrX7XsX88XuXH"XsXHX V VV Pz &$7'(-@/4w6 <BXDAHJJV Tn TnTn\V TnrTn%TnsTn%p''TnrTn-TnsTn.0 2< 8>=BTn Qv QQKQsQ+Mb!'%,x/2479a>) EJ J QP!P!P!w !'-/` 7389<ADC J J P!N{N{N{ "$'&*+.31359;K=@EH_J J N{LLL1LJIrJIJIJIsJIO%+2;?WCJKvKvJIHHHuM %)h*,1(5r7_8;9>DEH_J J HFFFf ~F Dnv DnDnDnsDn$m#&+.0714579j>D4EHJ J DnBBBZ #%)*O-d1+59;ACd J!J!BAAA>o!@"(5-A>ur>u>u>us>u '- :i;V>CJJ>u<<<hEQ#')+V-05< :@v :@:@3:@s:@+0O!#%'-u25B9pAZDGJ J :@8y8y8y35i!&(-.02>8#:5C"HsHJ J 21>u1>1>`1>s1>&&1>r1> %1>s1>&e(,.602'3~3~1>r1> =}1>s1>>3@CFJJ1>///  dJ#%w*/22/w/4/s/597:d/ -v -- -s-R & "<%'-32u4 <?CF[GJ J -+L+L+L65+L(((n1# ,/5146:<@ E( &v &&&s&lM L %y'E(,-P0101&r&7&s&8:<BGJ J &$?$?$?=sc <&.'q),*.?0u39=@ B@FJ J $?"""M #):-b05y67<=A#CGJ!J!"   mv mmmsmac/#&,' . 7#m v sL`4"D#(w*,:.02$4X7=?;D"EGJ J  yv yy\ysy"zo"V'e)-N 344j4py v As_mT!m"%(,N 4 +v +++s++c !#I&U)+ q =Y(r( s  Ws9!M&-025 ;AEGJJ % % %e_4"b(( %r % 4 %s %68>ADJJ % r  s} "N&t&tu3 s4=@U@Ur JisK@K@ q?[*selectsoneofthefollowingthreefunctionstobetheattachedwindow'sDOWINDOWCOMFNproperty,orleavesthepropertyNILifWINDOWCOMACTIONisHERE,meaningtousethestandardwindowcommandmenu,ignorantofthewindow'sattachments.TheprogrammercaninsteadsupplyherownDOWINDOWCOMFNpropertyifsomeotherbehaviorisdesired.(DOATTACHEDWINDOWCOMATTACHEDWLOCALCLOSEFLG)Thedefault(whenWINDOWCOMACTIONisNIL).Bringsupthewindowcommandmenuandthen,dependinguponthecommandselected,eitherpassesthecommandtothemainwindowofATTACHEDWorperformsitonATTACHEDW.IfLOCALCLOSEFLGisnon-NIL,theCLOSEcommandisappliedtoATTACHEDW.Otherwise,theCLOSEcommandispassedtothemainwindow.ThecommandsMOVE,RESHAPE,SHRINKandBURYarepassedtothemainwindow.TheothercommandsareperformedonATTACHEDW.(DOATTACHEDWINDOWCOM2ATTACHEDW)UsedwhenWINDOWCOMACTIONisLOCALCLOSE.Performs(DOATTACHEDWINDOWCOMATTACHEDWT)sothatthecommandCLOSEisperformedonATTACHEDW.(DOMAINWINDOWCOMFNATTACHEDW)UsedwhenWINDOWCOMACTIONisMAIN.PerformsDOWINDOWCOMonthewindowthatistheMAINWINDOWpropertyofATTACHEDW.Inotherwords,assumingtheDOWINDOWCOMFNofthemainwindowhasn'tbeenchanged,thispassesallwindowcommandsontothemainwindow.AttachingmenustowindowsATTACHEDWINDOWsupersedestheMENUEDWINDOWpackageandusersofitareencouragedtoconverttheircode.Thefollowingfunctionsareprovidedtoassociatemenustowindows.(ATTACHMENUMENUMAINWINDOWEDGEPOSITIONONEDGE)CreatesawindowthatcontainsthemenuMENU(bycallingMENUWINDOW,seebelow)andattachesittothewindowMAINWINDOWonedgeEDGEatpositionPOSITIONONEDGE.(MENUWINDOWMENUVERTFLG)ReturnsaclosedwindowthathasthemenuMENUinit.IfMENUisalist,amenuiscreatedwithMENUasitsitems.Otherwise,MENUshouldbeamenu.ThereturnedwindowhastheappropriateRESHAPEFN,MINSIZEandMAXSIZEwindowpropertiestoallowitsuseinawindowgroup.VERTFLGisprovidedtoallowconvenientsettingofthedefaultmenushapeandwillonlybeconsideredifboththeMENUROWSandMENUCOLUMNSfieldsofMENUareNIL.IfVERTFLGisnon-NIL,theMENUROWSfieldofMENUwillbesetto1;otherwisetheMENUCOLUMNSfieldofMENUwillbesetto1.(CREATEMENUEDWINDOWMENUWINDOWTITLELOCATIONWINDOWSPEC)Createsawindowwithanattachedmenuandreturnsthemainwindow.MENUistheonlyrequiredargument,andmaybeamenuoralistofmenuitems.WINDOWTITLEisastringspecifyingthetitleofthemainwindow.LOCATIONspecifiestheedgeonwhichtoplacethemenu,aswithATTACHWINDOW'sEDGEargument;thedefaultisTOP.WINDOWSPECisaREGION,specifyingaregionfortheaggregatewindow;ifNIL,theuserispromptedforaregion.ThisfunctionissimilartoMENUEDWINDOW'sfunctionMAKEMENUEDWINDOW.However,notethatitisnotanexactreplacement.Inparticular,theMENUWINDOWpropertyisnotused.Examples:(SETQMENUW c8 as aaB!|$H%')/ 44ara CasaCjI+JJa `9 `9`9*||`9r`9`9s`9JJ`9u`9+`9s`9,.3.3`9r`92&`9s`9328:=u@EJJ`9 ^ ^^kR(% -.m1a 9[<@E[GJJ^ ]!r ]!]! ]!s]!C $*14;<<]! Zr ZZZuZ$ /ZrZ0ZWsWWWuW*WsW+,S,SWrW.WsW0 0j46v8=CGJ J WVVVX &2+/35<:=@-CHJ!J!VTuTT\TsTTPTuT'=TsT'(+)R)RTuT 3\TsT346TrT8TsT9;K;KTrT?%TsT?yDCEOHJJTSjuSjSj\SjsSj SjrSj#SjsSj$)*5-.0378K:??SjrSjCYSjsSjDDSjrSjISjsSjJJSjQrQQQsQQrQQsQ!'*T-2K98:C=CJJQPJPJPJxxPJuPJ#PJsPJ$)PJrPJ$/PJ M MMllMuM$MrM%MsM%MJJJGJuJ,cJsJ/33JrJ =pJsJADkJ!J!JIrII"_"_IuI)IrI+-GIsI.2L7T;CCIrIGCIsIHJJIGGGzRRGuG!GrG" G EH EHEHEHuEH"vEHrEH#MEHsEH#SEHBBB|11BuB&BsB'T((BrB,BsB-.)44BrB @8BsB@BE&J J B@@@@r@ "6@s@#)++++@u@4@s@568<AGJ J @?gr?g?g ?gs?g"'4-r38A@.DJJ?g===V. "&-+&=r=+,= :mq :m:m#:mr:m#:m 7 77 7s7 !%%7r7 /7s71#8`)>0u0-0s0.40440r0 @0s0@C GJ J 0////u/ )Z/s/)+../u/2/s/3 4x99/u/ F/s/F/ ,wr ,w,w ,wu,w9,wr,w,w)s))!#&)))u).Q)s).04133)u)7)s)79.:0<=AUBG6J!J!)(Tu(T(Tr(Ts(To8 (Tu(T#(Ts(T$.')<*M-."0o48:< BB(Tr(TI(Ts(TJJ(T&r&&&s&nn&r& O&s&!_'y 038<@BDJJ&%4%4%4rr%4u%48%4s%4"y#'z .F246D:>uB+DG7J!J!%4### 9}#r#(#s#)2++#r# 7#s#8O< ==#u#BJ#s#BE8E8#r#G#s#HsHJ J #"4u"4"42"4s"4}"4r"4"4s"4H"4r"4#"4s"4$B&''"4u"4+E"4s"4+-.0[127[99"4r"4 Bz"4s"4BEF>F>"4u"4I"4s"4JJ"4  c& r u *1 9r::s::/q &@*:- 14O7=~>>:u:B:s:C9DG7J!J!:~!#% (*+.A03788u C=sCEEFzJ J  _O#3()A)Au0s1f69C<>BDZGJ!J!HHHHrH %!HsH&h&hHuH*{HsH*1j38899HrH3s >3>3m"& ./46:@ADHEIJJ>3 < <<i?!"!# ),..02359w:> CDFI6JJ< : :: YOf F&[,].k0813#8;a>7@BHJJ: 9A 9A9AH /9A 6r 66996u6 "v(W, 46r6563s33|!' -k003u3 ;3s3;A/BC J JxJx32F2F2F"[#&(]))2Fu2F 42Fs2F58772Fr2F?2Fs2F@=B0CC2Fr2FD2Fs2FENGJ!J!2F000  0r0 0s0D0r0 e0s0 "&*#/v/279?:==0u0C0s0CG+J!J!0...% !&7',?/`235:;<@]AEJ JxJx.-u---s-_n/[!$)3*p,0.]//-u- 8 -s-9 ;>@CEZIJJ-+++f+u+ #+s+$f%)-0!5J68<B5B5+r+D+s+EGJ J +*U*U*Ua!*U 'r '''u' $$'r'%'%s%%!'$(W+" 1[4F4F%u% >%s%?BEF% !q !!C %-v!r!-|! s z #'X()-12/35O7'*-9 3/9t:?,CxGJ!J!s{ r&s'(*+/0o457;E@ADJ!J!'''6 _ %4)h+w.3a' t OiA!%'5 -&1q589\;=ABFHJJ  K K K#Vl #/'(, -16W98<<?1@D Ksr1srSs #&[((*Y.l1 8 q?[MAINWINDOW:pointerfromattachedwindowstothemainwindowofthegroup.Thislinkisnotavailableifthemainwindowisclosed.ATTACHEDWINDOWS:pointerfromawindowtoitsattachedwindows.Forfunctionalaccesstothisinformation,thefunctionATTACHEDWINDOWSisdocumentedbelow.WHEREATTACHED:forattachedwindows,alistwhosefirstelementistheEDGEandwhosesecondelementisthePOSITIONONEDGEthatdeterminetheplacementconditionforthiswindow.TheTOTOPFNpropertyonattachedwindowsandthepropertiesTOTOPFN,DOSHAPEFN,MOVEFN,CLOSEFN,OPENFN,SHRINKFN,EXPANDFNandCALCULATEREGIONFNcontainelementsthatimplementthewindowmanipulationfacilities.Careshouldbeusedinmodifyingorreplacingtheseproperties.NotesAwindowscanbeattachedtoonlyoneotherwindow.Attachingawindowtoasecondwindowwilldetachitfromthefirst.Attachmentscannotformloops.Thatis,awindowcannotbeattachedtoitselfortoawindowthatisattachedtoit.ATTACHWINDOWwillgenerateanerrorifthisisattempted.Attachedwindowscanhaveotherwindowsattachedtothem.Thus,itispossibletoattachwindowAtowindowBwhenBisalreadyattachedtowindowC.Similarly,ifAhasotherwindowsattachedtoititcanstillbeattachedtoB.Movingthemainwindowwillmaintaintherelationshipsbetweenwindows.ReshapingthemainwindowwillrestoretheconditionsestablishedbythecalltoATTACHWINDOW,movingthemainwindowdoesnot.Thus,ifAisattachedtothetopofBandthenmovedbytheuser,itsnewpositionrelativetoBwillbemaintainedifBismoved.IfBisreshaped,AwillbereshapedtothetopofB.Additionally,if,whileAismovedawayfromthetopofB,CisattachedtothetopofB,CwillpositionitselfabovewhereAusedtobe.Theattachedwindowscanbeclosedbythemselves.Theywillbereopenedwheneverthemainwindowisreshaped.TheclosefnforthemainwindowbreaksthelinksfromtheattachedwindowstoittoallowthemtobeGC'ed.Thereopenfnforthemainwindowreestablishestheselinks.Thusitispossibletoreopenaclosed,attachedwindowandnothaveitlinkedtoitsmainwindow.Exampleofuse(ATTACHWINDOWATWINMAINWIN'TOP'CENTER)willmoveATWINtoimmediatelyaboveMAINWINandmaintainitsattachmentthere.(ATTACHWINDOWNOTHERWINMAINWIN'TOP'CENTER)willmoveNOTHERWINtoimmediatelyaboveATWINandmaintainitsattachmentthere.Miscellaneousfunctions(WINDOWREGIONWINDOW)ReturnsthescreenregionoccupiedbyWINDOWanditsattachedwindows,ifithasany.(WINDOWSIZEWINDOW)ReturnsthesizeofWINDOWanditsattachedwindows,ifithasany.(MINATTACHEDWINDOWEXTENTWINDOW) c8 `r `` X`s` !'.148>ARDJKvKv`_J_J_Jnz!%,*&+d/f_J \r \\\s\!%(.15=EGCJJ\[[[ 6 %'-+-+[r[<[s[<> EI[ Xr XX XsX$w,Q.J28=qDtGCJJXWrWWDWsW`R#x*v-A00WrW DFJJG E EE RE C- C-C-  "#v%H&+0>2=79<>@uAFIJJC- A AA;:ArA AsA v"(E*-K.~02. 8yA > >>Y%+%,01D56v7='>BGIBJJ> =! =!=!YL]!#U(f*** 013r59X>DNEG%HdJJ=! ;{ ;{;{ b%n;{ 8 88`Z"^$ ,]17p778 5 55; $b& - 469$;==5r5 J5s5JJ5 4U 4U4U q $%'p(../24x67x:=/ACEIJJ4U 2 22 r3t %j&')-.'/}0179X;=C<DFI6JJ2 1 1 1  J!m$(*T,.D/1O279;>?A\AC)EJJ1 /c /c/c8E/c , ,, /V?!a#U *+.1-39?=A IJJ, * **b `%j)+/2^49?ABOCGgJJ* )W )W)W p%b*W $)( 14x8 8;=3>CEXIJJ)W ' ''GY!q"&( ) 22k22' $fq $f$f$fr$f$f!!!  'l+2]! s  mrsH k#=#=r*Es*-&24[ ;;>QrQQ $*.5Q s  mr*s #'w'wr,js,/K46 =`@ =q == =r== } }} }u}}r}}s *=$&&u-@s-0!17<>?GAD (r (( (u((r(( _s _ _ '' _u _! _s _"$&J+1i236 8 _ r u$r% q?[;Returnstheminimumextent(adottedpairofwidthandheight)ofWINDOWanditsattachedwindows(ifany)willaccept.ThisisdeterminedbyusingthewindowpropertyMINEXTENTwhichiseitheradottedpairorafunctionwhichwhenAPPLYedtothewindowreturnsadottedpair.(ATTACHEDWINDOWSMAINWINDOW)Returnsthelistofwindowsattachedtothiswindow.(ALLATTACHEDWINDOWSMAINWINDOW)ReturnsalistofallofthewindowsattachedtoMAINWINDOWorattachedtoawindowattachedtoit.(DETACHALLWINDOWSMAINWINDOW)DetachesandclosesallwindowsattachedtoMAINWINDOW. c8`s``s!#|'*,K0&279898`u`?`s`@PCDJ J `___vB!"_%|& .40436D;pA A _r_I_s_J J _]y]y]y7 $^!!"#)I-@00]yr]y5w]ys]y7T8;9@MDFJ J ]y[[[[ YGr YGYG99YGuYG !YGrYG"|YGV~sV~V~ . 7%')r.qV~ Sr SSSuS $$SrS%SQ)sQ)Q)]"$)+w+wQ)uQ) 6Q)sQ)6l8=T>?DJ!J!Q)OOOhO Lr LLLuL "vLrL#SLJ.sJ.J.(#"(k))J.uJ. 4J.sJ.4J.rJ.4J. q?[ TIMESROMAN  TIMESROMAN  TIMESROMAN TIMESROMAN TIMESROMAN ~GACHA  HELVETICA ~GACHA  m) f6 _ADj/GE.{PHYLUM}LIBRARY>ATTACHEDWINDOW.TED;4VANMELLE 2-Jun-84 16:36:05