PAGEHOLDAFacilitytoControlWindowScrollingauthor:JonLWhitefiles:[Eris]PAGEHOLD.DCOMdocumentation:[Eris]PAGEHOLD.TEDIT(and.PRESS)modified:May21,1984,andOct21,1984byJonLThePAGEHOLDfacilityredefinesPAGEFULLFNtoachieve--NovideoinversionoftheTTYwindowwhenbeing"held";--Releaseiseffectedbyoneofseveralmeans:{1}depressingandreleasingeitherSHIFTkey;{2}mousingthepop-up"button"whichannouncesthe"hold";{3}thetimeperiodof"holding"hasexceededatimeout;{4}typingacharacterduring"holding"(whichisdiscarded,butsee{5}below);{5}thereistypeaheadinthewindow'sinputbuffer,anditistheTtyDisplayStreamforthecurrentTTYprocess;--Continued"holding"whileeithershiftkeyisbeingdepressed;--Overrideof"holding"actionifCTRLkey(butneitherSHIFTkey)ishelddown;--Gaggingthe"timeout"actionofa"hold"indefinitelybydepressingtheCTRLkeywhileholdingdownaSHIFT;the"hold"mustthenbereleasedbyoneoftheothermeans.--Amenuofoptionsisobtainablefromthepop-up,interactive"button"signallingthe"hold";Automatic,"timeout"ReleasesOneoftheprimaryreasonsfortheexistenceofthisfacilityissothatprintouttoaTTYwindowwillnothangindefinitelywhenone"page"hasfilledup.ThedefaultreleasetimeisintheglobalvarPAGE.WAIT.SECONDS,whichcomesinitializedto20seconds;avalueof0willcauseimmediaterelease(unlessaSHIFTkeyisbeingdepressed).Ifawindowbeing"held"hasaPAGE.WAIT.SECONDSproperty,thenthatvalueisusedinsteadoftheoveralldefault.However,ifPAGE.WAIT.SECONDSissettoSTOP,thenthe"hold"willnotbereleasedbyanyautomatictimeout,norwillitbesensitivetotheSHIFTorCTRLkeyactions;thismodemostcloselyapproximatesthecurrentInterlisp-Ddesign,exceptthatapop-up"button"signalsthe"hold"ratherthanavideoinversion(mousingthebuttonwill,nevertheless,stilleffectarelease).Themessage"ScrollingStopped"willappearinthe"button"ratherthanoneoftheseveral"holding"messages.Finally,a"hold"maybeputinto"indefinitehold",whichissimilartotheSTOPmodejustdescribed,bydepressingCTRLwhilealsoholdingdowneitherSHIFT.Atleastoneofthethree"button"stylesdescribedbelowwillvisiblyindicatethisindefinite"hold"mode;andreleasemaybeeffectedinanyoftheusualways,includingdepress/releaseofSHIFT,exceptthattherewillbenoautomatic"timeout"release.ThePop-up"Buttons"Asecondaryreasonforthisfacilityistohaveapop-up"button",whichwillinteractivelysignaltheuserofa"holding"conditiononaparticularwindow.Notonlydoesthisdesignpermitadifferentbuttonforeachwindow,butitalsopermitstheselectivereleaseof"holding"bymousingthebutton(whereaskeyboardactionwouldbeinterpretedbyallthepage"holders"asareleasesignal).Therearethreestylesof"buttons"--WINKING,FLASHING,andNIL--andtheselectionisdeterminedbythevalueoftheglobalvarPAGE.WAIT.ACTIVITY,whichcomesinitializedtoWINKING.IfawindowhasaPAGE.WAIT.ACTIVITYproperty,thenthatvalueisusedinsteadoftheoveralldefault.AWINKING"button"isafairlyheftypad--approximately1/2"by21/2"--whichpopsupjustovertherightsideofthewindow'stitlebar;itwillalternatelyprintandcleartwoshortholdingmessages:onein q?` p q?` g_p agq""agrag1Iagqag2 ag _ _ ^^s^X%&,29U^q^:,^ \ \ [A [A Yt8YqYYuYgYqYY X2t X2qX2 'X2 Vt VqV./|VuV1VqV29xw>xu>x]>xw>x >xu>x $n'*,a1}3K57S9<A>xq>xA>x #o)*-1k24?6<=>AFF4T 2 o #|%)%+`+.a27.:$;b<?DD2 1Ev;1Eu1E &(e*/{0x35}69<CGmGm1E /`]]/w//u/O( ""u#$)-\1344/v/C2/u/CIKIK/ .- BO\#(].- ,!!,v,$h,u,$%')m)m,v,,,u,-y0p279|;=BDoFF, +S*R"g#&&+w+*K+u+*,9,9+w+/+u+/2T787:=@EE+ ) 2c $Q(q+, 06P:<A DGHH) ( BI"\ *8,0D1A6g69h>>( &&y&&u&& $ oFw #i$'%+17o$ #h " )b-j1G268Y::#hv#h=#hu#h>>ADV JJ#h ! TT!w!!u!)!$(X(X!w!,!u!-:-/_2U46]8;AE E ! PCke! ',80W276: ;@BVDFTHH P  c 1!!w%u&*-^03346<@CG A A   =q""=x=&],5=q=6=   .uI.#$&@)X*U.48;H BFHH.  JGiA> $@)),/u2v49=G>DCGJJ ( H_#T$(*|027:>PCII(   zH  :#R)_*+03458;>hACxII " > >"v""u""v""u"7"v"E"u""p$*+Q 2g456f9;k=CfCf" vu! ')<)<v/u/0$1y2v7p9::vIuJ*J*  K!#%N). II v * u "`]!%%'( 1467:<?CDGiJTJT  %G{ "$ +.@036h9>DG0HH  U q?`y2theupperhalfofthe"button"andoneinthelowerhalf.AFLASHING"button"isaboutthesamewidth,buthalftheheight,andwillalternatelyprintthetwoholdingmessages.ANIL"button"merelyshowsthemessage"ReleaseSHIFTformore".LEFT-mousingany"button"willeffectareleaseofthe"hold";MIDDLE-mousingthe"button"willbringupamenuoffering,oneofwhoseoptionsisforsimple,immediaterelease.Othermenuoptionspermitconversionofthe"hold"toindefinite"hold"ortoSTOPmode;additionally,fiveoptionsareofferedforsettingthewindow'sspecificPAGE.WAIT.SECONDSproperty.TheWINKING"button"willactuallyhaveadifferentpatternofactivitywhenthe"hold"isplacedintoindefiniteholdmode,buttheotherbuttonstylesdonotvisiblydistinguishthisstate.Ifthereisn'troomtoplacethe"button"downovertherightsideofthetitlebar(because,forexample,thewindowistooclosetothescreentop),thenitwillbeplacedoveranothercornerofthewindow.KeyboardInputandTypeaheadConsistentwithInterlisp-D'scurrentaction,therewillbenoholdingonawindowwhichistheTtyDisplayStreamforthecurrentTTYProcessandforwhichthereistypeaheadinthatprocess'sTTYinputbuffer.ButthisactioncanbeoverriddenbysettingPAGE.WAIT.IGNORETYPEAHEADtoanon-NILvalue;additionally,whenitissettoanon-NILvalue,thennokeyboardinputwillreleasethe"hold",andnonewillbediscarded(notethatdepressingtheSHIFTand/ortheCTRLkeysdoesnotgenerateinput).Thisisespeciallyforthosewhodislikenotknowingwhetherakeystrokewillbe"eaten"bythePAGEFULLFN.Otherwise,iftheTTYinputbufferisemptywhenthe"hold"begins,thenanycharactertypedwillreleasethehold,andthetypecharacterwillbediscarded.H fu hsp hs bu %!R{ "x$(C+8+,,bvb3bub39:>@DHJiJib `u $( !$&+l1o13&3&`uv`u5`uu`u6;@CFF`u ^^y^<^u^ B ^ ]H]Hw]HF]Hu]H /"&F'C+-$/U4.4.]Hw]H98]Hu]H?A?FIZIZ]H [ nRO^f!d&'N)]-4z9'9=F@EII[ Z9 0aA B$&8''Z9vZ9+Z9uZ9+l/ 779>k@E)G8G8Z9 X)Z0XvX)/XuX)/G/MX W!W!vW!tW!uW!l$'(.T24m9<>CDYHHW! U !%)R+*-p1 8T:>>w?C&EIiIiU T t D/`"%+&(+-35;<=mBgCEIJJT R %/F=e"'+-</m4lR Q Q Oq O N3N3xN3&+/58N3qN39N3 L L K$u p[ $(,G.02]759 : ?BDFPFPK$ I <!%%ItI($*-1 2I8e9<ADHG%I"HGI#HGI H  Gf ZG ZH uH  aE,L "#((H vH =H uH =n>?BH vH E/H uH EIzIzH Fu &~SPFuvFu!FuuFu!%(*0c36X:<AD GcIIFu D  D u uDwD$DuD%)w++DwD/DuD/\2G5H7<A,ADnEED C] sHo$)9*60,24j9E;=D=DC]vC] EC]uC]FYFFC] A *#'q).2y5p7=AACHJCJCA @N L $@N > > =|q =| <$ <$ : : 9t 9t 8 8 6 6 5l 5l q?`  HELVETICA  HELVETICA ~GACHA ~GACHA  TIMESROMAN  TIMESROMAN  TIMESROMAN  HELVETICA~SNAIL ~SNAIL_j/a!{ERIS}PAGEHOLD.TEDIT;6JONL.PA 1-Dec-84 22:19:48