#!/bin/sh # MetaCard 2.4 stack # The following is not ASCII text, # so now would be a good time to q out of more exec mc $0 "$@" Managing waitings 2 \/* Managing user waiting Stack By Eric Chatonet 3/16/05 http://www.sosmartsoftware.com/ */ T3X uBusy %3Cp%3E%3Cfont+face%3D%22Courier+New%22+size%3D%2212%22+color%3D%22%230000FF%22%3Eset+%3C%2Ffont%3E%3Cfont+face%3D%22Courier+New%22+size%3D%2212%22%3Ethe+%3C%2Ffont%3E%3Cfont+face%3D%22Courier+New%22+size%3D%2212%22+color%3D%22%23FF0000%22%3Ecursor+%3C%2Ffont%3E%3Cfont+face%3D%22Courier+New%22+size%3D%2212%22%3Eto+busy%3C%2Ffont%3E%3C%2Fp%3E%0D%0A%3Cp%3E%3C%2Fp%3E%0D%0A%3Cp%3E%3Cimg+src%3D%221600%22%3E%26%239%3BUse+this+line+of+code+inside+a+%3Cb%3Erepeat+loop%3C%2Fb%3E+for+a+longer+waiting+time+%3Cb%3Eon+Mac+OS%3C%2Fb%3E%3A+on+Win+XP%2C+prefer+using+the+watch+cursor+outside+a+loop+since+it+is+already+an+animated+cursor.+This+means+that+purists+will+not+use+the+same+cursors+according+to+the+current+platform...%3C%2Fp%3E%0D%0A%3Cp%3E%3Ci%3EThe+beach+ball+rotates+automatically+by+an+eighth+at+each+call.%3C%2Fi%3E%3C%2Fp%3E%0D%0A%3Cp%3E%3C%2Fp%3E%0D%0A%3Cp%3E%26%239%3B%3Cfont+face%3D%22Courier+New%22+size%3D%2212%22+color%3D%22%23980517%22%3Erepeat+for+%3C%2Ffont%3E%3Cfont+face%3D%22Courier+New%22+size%3D%2212%22%3Eeach+line+l+in+tList%3C%2Ffont%3E%3C%2Fp%3E%0D%0A%3Cp%3E%26%239%3B%3Cfont+face%3D%22Courier+New%22+size%3D%2212%22%3E++%3C%2Ffont%3E%3Cfont+face%3D%22Courier+New%22+size%3D%2212%22+color%3D%22%230000FF%22%3Eset+%3C%2Ffont%3E%3Cfont+face%3D%22Courier+New%22+size%3D%2212%22%3Ethe+%3C%2Ffont%3E%3Cfont+face%3D%22Courier+New%22+size%3D%2212%22+color%3D%22%23FF0000%22%3Ecursor+%3C%2Ffont%3E%3Cfont+face%3D%22Courier+New%22+size%3D%2212%22%3Eto+busy%3C%2Ffont%3E%3C%2Fp%3E%0D%0A%3Cp%3E%26%239%3B%3Cfont+face%3D%22Courier+New%22+size%3D%2212%22%3E++DoMyStuff%3C%2Ffont%3E%3C%2Fp%3E%0D%0A%3Cp%3E%26%239%3B%3Cfont+face%3D%22Courier+New%22+size%3D%2212%22+color%3D%22%23980517%22%3Eend%3C%2Ffont%3E%3Cfont+face%3D%22Courier+New%22+size%3D%2212%22%3E+%3C%2Ffont%3E%3Cfont+face%3D%22Courier+New%22+size%3D%2212%22+color%3D%22%23980517%22%3Erepeat%3C%2Ffont%3E%3C%2Fp%3E%0D%0A%3Cp%3E%3C%2Fp%3E%0D%0A%3Cp%3E%3Cimg+src%3D%221600%22%3E%26%239%3BWhen+the+cursor+is+busy%2C+the+user+knows+that+your+app+did+not+crash+%3A-%29%3C%2Fp%3E%0D%0A%3Cp%3E%3C%2Fp%3E%0D%0A%3Cp%3E%3Cimg+src%3D%221600%22%3E%26%239%3BRevolution+resets+automatically+the+cursor+to+the+default+cursor+when+the+handler+finishes.%3C%2Fp%3E%0D%0A%3Cp%3E%3C%2Fp%3E%0D%0A%3Cp%3E%3Cimg+src%3D%221600%22%3E%26%239%3BCheck+%3Ca%3Ecursor%3C%2Fa%3E+global+property%2C+%3Ca%3Ebusy%3C%2Fa%3E+constant+and+%3Ca%3Erepeat%3C%2Fa%3E+control+structure+in+the+Revolution+documentation.%3C%2Fp%3EuGeneralities $%3Cp%3E%3Cb%3EHow-To+stack+%23011+by+Eric+Chatonet%3C%2Fb%3E%3C%2Fp%3E%0D%0A%3Cp%3E%3C%2Fp%3E%0D%0A%3Cp%3E3%2F16%2F05%26%239%3B%26%239%3BInitial+release%3C%2Fp%3E%0D%0A%3Cp%3E%3Cfont+color%3D%22%23000000%22%3E5%2F27%2F05%26%239%3B%26%239%3BModified+for+Tutorial+Picker+compatibility%3C%2Ffont%3E%3C%2Fp%3E%0D%0A%3Cp%3E%3C%2Fp%3E%0D%0A%3Cp%3E%3Ci%3EGood+ergonomics+takes+care+of+managing+user+waitings.%3C%2Fi%3E%3C%2Fp%3E%0D%0A%3Cp%3E%3Ci%3EThis+stack+shows+the+different+ways+of+indicating+to+the+user+that+he+has+to+wait+a+moment+.%3C%2Fi%3E%3C%2Fp%3E%0D%0A%3Cp%3E%3Ci%3EEnjoy%21%3C%2Fi%3E%3C%2Fp%3E%0D%0A%3Cp%3E%3C%2Fp%3E%0D%0A%3Cp%3E%3Cimg+src%3D%221600%22%3E%26%239%3BUsing+the+watch+cursor+during+very+short+tasks+is+not+a+good+idea+since+user%27s+perception+will+be+%3Cb%3Ethis+app+is+slow%21%3C%2Fb%3E%3C%2Fp%3E%0D%0A%3Cp%3E%3C%2Fp%3E%0D%0A%3Cp%3E%3Cimg+src%3D%221600%22%3E%26%239%3BDon%27t+using+any+means+of+indicating+to+the+user+that+your+app+is+running+a+long+task+is+a+bad+idea+too%3A%3Cb%3E+this+app+crashed%21%3C%2Fb%3E%3C%2Fp%3E%0D%0A%3Cp%3E%3C%2Fp%3E%0D%0A%3Cp%3E%3Cimg+src%3D%221600%22%3E%26%239%3BIn+addition%2C+task+length+often+depends+on+the+situation%3A+%3Cb%3Ecomputer+speed+and+current+process%3C%2Fb%3E++%28you+don%27t+know+if+a+folder+dropped+by+the+user+contains+1%2C+10+or+500+files%29.%3C%2Fp%3E%0D%0A%3Cp%3E%3C%2Fp%3E%0D%0A%3Cp%3E%3Ci%3ESometimes+you+will+have+to+check+first+the+task+length+to+determine+if+an+indication+is+needed%3A+for+instance%2C+see+the+scripts+of+the+Rev+Application+Browser+where+a+specific+cursor+is+only+used+when+the+length+of+a+list+counts+more+than+50+lines.%3C%2Fi%3E%3C%2Fp%3E%0D%0A%3Cp%3E%3C%2Fp%3E%0D%0A%3Cp%3EThere+are+many+ways+of+indicating+waiting+time+%3A+%3Cb%3Estatic+cursors%3C%2Fb%3E+%28like+watch+on+Mac+OS%29%2C+%3Cb%3Eanimated+cursors%3C%2Fb%3E+%28like+busy+cursor%29%2C+%3Cb%3Eanimated+gifs%3C%2Fb%3E+%28like+chasing+arrows+or+%26quot%3Bbarber+poll%26quot%3B%29+and+%3Cb%3Eprogression+bars%3C%2Fb%3E+%28more+accurate+for+long+tasks%29.%3C%2Fp%3E%0D%0A%3Cp%3ELet+us+see+when+and+how+to+use+them%21%3C%2Fp%3E uProgress %3Cp%3E%3Cb%3EUsing+a+progress+bar+%3C%2Fb%3E%3C%2Fp%3E%0D%0A%3Cp%3E%3C%2Fp%3E%0D%0A%3Cp%3EA+progress+bar+is+a+control%2C+as+a+button+or+a+field%2C+which+belongs+to+scrollbars+family.%3C%2Fp%3E%0D%0A%3Cp%3E3+properties+let+you+manage+this+specific+scrollbar%3A%3C%2Fp%3E%0D%0A%3Cp%3E%3C%2Fp%3E%0D%0A%3Cp%3E%3Cimg+src%3D%221600%22%3E%26%239%3B%3Cb%3EstartValue%3C%2Fb%3E+is+an+integer+which+specifies+the+value+corresponding+to+the+start+position+%28often+zero%29.%3C%2Fp%3E%0D%0A%3Cp%3E%3Cimg+src%3D%221600%22%3E%26%239%3B%3Cb%3EendValue%3C%2Fb%3E+is+an+integer+which+specifies+the+value+corresponding+to+the+end+position.%3C%2Fp%3E%0D%0A%3Cp%3E%3Cimg+src%3D%221600%22%3E%26%239%3B%3Cb%3EthumbPosition%3C%2Fb%3E+is+an+integer+between+start+and+end+values+which+specifies+the+current+position.%3C%2Fp%3E%0D%0A%3Cp%3E%3C%2Fp%3E%0D%0A%3Cp%3E%3Cb%3EHow+to+initialize+the+progress+bar+with+the+right+values%3A%3C%2Fb%3E%3C%2Fp%3E%0D%0A%3Cp%3E%3C%2Fp%3E%0D%0A%3Cp%3EImagine+you+have+x+files+to+process+%28here+a+list+of+lines+stored+into+a+variable+named+tList%29%3A%3C%2Fp%3E%0D%0A%3Cp%3EYou+will+specify+the+number+of+files+as+the+%3Ca%3Eendvalue%3C%2Fa%3E.%3C%2Fp%3E%0D%0A%3Cp%3EThe+%3Ca%3EstartValue%3C%2Fa%3E+and+the+%3Ca%3EthumbPos%3C%2Fa%3E+will+be+zero%3A%3C%2Fp%3E%0D%0A%3Cp%3E%3C%2Fp%3E%0D%0A%3Cp%3E%3Cfont+face%3D%22Courier+New%22+size%3D%2212%22+color%3D%22%230000FF%22%3Eset+%3C%2Ffont%3E%3Cfont+face%3D%22Courier+New%22+size%3D%2212%22%3Ethe+%3C%2Ffont%3E%3Cfont+face%3D%22Courier+New%22+size%3D%2212%22+color%3D%22%23FF0000%22%3EstartValue+%3C%2Ffont%3E%3Cfont+face%3D%22Courier+New%22+size%3D%2212%22%3Eof+sb+%26quot%3BProg%26quot%3B+to+0%3C%2Ffont%3E%3C%2Fp%3E%0D%0A%3Cp%3E%3Cfont+face%3D%22Courier+New%22+size%3D%2212%22+color%3D%22%230000FF%22%3Eset+%3C%2Ffont%3E%3Cfont+face%3D%22Courier+New%22+size%3D%2212%22%3Ethe+%3C%2Ffont%3E%3Cfont+face%3D%22Courier+New%22+size%3D%2212%22+color%3D%22%23FF0000%22%3Eendvalue+%3C%2Ffont%3E%3Cfont+face%3D%22Courier+New%22+size%3D%2212%22%3Eof+sb+%26quot%3BProg%26quot%3B+to+%5C%3C%2Ffont%3E%3C%2Fp%3E%0D%0A%3Cp%3E%3Cfont+face%3D%22Courier+New%22+size%3D%2212%22%3E++++the+%3C%2Ffont%3E%3Cfont+face%3D%22Courier+New%22+size%3D%2212%22+color%3D%22%23FF0000%22%3Enumber+%3C%2Ffont%3E%3Cfont+face%3D%22Courier+New%22+size%3D%2212%22%3Eof+lines+of+tList%3C%2Ffont%3E%3C%2Fp%3E%0D%0A%3Cp%3E%3Cfont+face%3D%22Courier+New%22+size%3D%2212%22+color%3D%22%230000FF%22%3Eset+%3C%2Ffont%3E%3Cfont+face%3D%22Courier+New%22+size%3D%2212%22%3Ethe+%3C%2Ffont%3E%3Cfont+face%3D%22Courier+New%22+size%3D%2212%22+color%3D%22%23FF0000%22%3EthumbPos+%3C%2Ffont%3E%3Cfont+face%3D%22Courier+New%22+size%3D%2212%22%3Eof+sb+%26quot%3BProg%26quot%3B+to+0%3C%2Ffont%3E%3C%2Fp%3E%0D%0A%3Cp%3E%3C%2Fp%3E%0D%0A%3Cp%3E%3Cb%3EHow+to+increment+the+progress+bar%3A%3C%2Fb%3E%3C%2Fp%3E%0D%0A%3Cp%3E%3C%2Fp%3E%0D%0A%3Cp%3EThen+you+will+fix+the+%3Ca%3EthumbPos%3C%2Fa%3E+property+inside+your+processing+repeat+loop%3A%3C%2Fp%3E%0D%0A%3Cp%3E%3C%2Fp%3E%0D%0A%3Cp%3E%3Cfont+face%3D%22Courier+New%22+size%3D%2212%22+color%3D%22%230000FF%22%3Eput+%3C%2Ffont%3E%3Cfont+face%3D%22Courier+New%22+size%3D%2212%22%3E0+into+tPos%3C%2Ffont%3E%3C%2Fp%3E%0D%0A%3Cp%3E%3Cfont+face%3D%22Courier+New%22+size%3D%2212%22+color%3D%22%23980517%22%3Erepeat+for%3C%2Ffont%3E%3Cfont+face%3D%22Courier+New%22+size%3D%2212%22%3E+each+line+tLine+in+tList%3C%2Ffont%3E%3C%2Fp%3E%0D%0A%3Cp%3E%3Cfont+face%3D%22Courier+New%22+size%3D%2212%22%3E++%3C%2Ffont%3E%3Cfont+face%3D%22Courier+New%22+size%3D%2212%22+color%3D%22%230000FF%22%3Eadd+%3C%2Ffont%3E%3Cfont+face%3D%22Courier+New%22+size%3D%2212%22%3E1+to+tPos%3C%2Ffont%3E%3C%2Fp%3E%0D%0A%3Cp%3E%3Cfont+face%3D%22Courier+New%22+size%3D%2212%22%3E++%3C%2Ffont%3E%3Cfont+face%3D%22Courier+New%22+size%3D%2212%22+color%3D%22%230000FF%22%3Eset+%3C%2Ffont%3E%3Cfont+face%3D%22Courier+New%22+size%3D%2212%22%3Ethe+%3C%2Ffont%3E%3Cfont+face%3D%22Courier+New%22+size%3D%2212%22+color%3D%22%23FF0000%22%3EthumbPos+%3C%2Ffont%3E%3Cfont+face%3D%22Courier+New%22+size%3D%2212%22%3Eof+sb+%26quot%3BProgress%26quot%3B+to+tPos%3C%2Ffont%3E%3C%2Fp%3E%0D%0A%3Cp%3E%3Cfont+face%3D%22Courier+New%22+size%3D%2212%22%3E++DoMyStuff+%3C%2Ffont%3E%3Cfont+face%3D%22Courier+New%22+size%3D%2212%22+color%3D%22%2368228B%22%3E--+the+stuff+you+need+to+do%3C%2Ffont%3E%3C%2Fp%3E%0D%0A%3Cp%3E%3Cfont+face%3D%22Courier+New%22+size%3D%2212%22+color%3D%22%23980517%22%3Eend%3C%2Ffont%3E%3Cfont+face%3D%22Courier+New%22+size%3D%2212%22%3E+%3C%2Ffont%3E%3Cfont+face%3D%22Courier+New%22+size%3D%2212%22+color%3D%22%23980517%22%3Erepeat%3C%2Ffont%3E%3C%2Fp%3E%0D%0A%3Cp%3E%3C%2Fp%3E%0D%0A%3Cp%3ENote+that+we+use+the+%3Cb%3Erepeat+for+each%3C%2Fb%3E+form+%28very+faster+with+long+lists%29+and+implement+a+variable+to+find+a+value+again+as+in+the+%3Cb%3Erepeat+with+i%3C%2Fb%3E+form.%3C%2Fp%3E%0D%0A%3Cp%3E%3C%2Fp%3E%0D%0A%3Cp%3E%3Cb%3EHow+to+do+with+long+tasks+and+short+lists%3A%3C%2Fb%3E%3C%2Fp%3E%0D%0A%3Cp%3E%3C%2Fp%3E%0D%0A%3Cp%3EWhen+the+task+is+long+and+the+number+of+loops+short%2C+it+is+not+easy+to+avoid+feeling+sharp+steps.%3C%2Fp%3E%0D%0A%3Cp%3EA+workaround+is+to+set+the+thumbPos+as+well+during+the+process+and+calculate+the+right+%3Ca%3EendValue%3C%2Fa%3E+at+the+beginning.%3C%2Fp%3E%0D%0A%3Cp%3EYou+will+add+a+handler+as+the+following+and+call+it+from+differents+places+inside+your+processing+repeat+loop%3A%3C%2Fp%3E%0D%0A%3Cp%3E%3C%2Fp%3E%0D%0A%3Cp%3E%3Cfont+face%3D%22Courier+New%22+size%3D%2212%22+color%3D%22%23980517%22%3Eon+%3C%2Ffont%3E%3Cfont+face%3D%22Courier+New%22+size%3D%2212%22%3EShowProgress%3C%2Ffont%3E%3C%2Fp%3E%0D%0A%3Cp%3E%3Cfont+face%3D%22Courier+New%22+size%3D%2212%22+color%3D%22%230000FF%22%3E++put+%3C%2Ffont%3E%3Cfont+face%3D%22Courier+New%22+size%3D%2212%22%3Ethe+%3C%2Ffont%3E%3Cfont+face%3D%22Courier+New%22+size%3D%2212%22+color%3D%22%23FF0000%22%3EthumbPos+%3C%2Ffont%3E%3Cfont+face%3D%22Courier+New%22+size%3D%2212%22%3Eof+sb+%26quot%3BProgress%26quot%3B+into+tPos%3C%2Ffont%3E%3C%2Fp%3E%0D%0A%3Cp%3E%3Cfont+face%3D%22Courier+New%22+size%3D%2212%22+color%3D%22%230000FF%22%3E++add+1%3C%2Ffont%3E%3Cfont+face%3D%22Courier+New%22+size%3D%2212%22%3E+to+tPos%3C%2Ffont%3E%3C%2Fp%3E%0D%0A%3Cp%3E%3Cfont+face%3D%22Courier+New%22+size%3D%2212%22+color%3D%22%230000FF%22%3E++set+%3C%2Ffont%3E%3Cfont+face%3D%22Courier+New%22+size%3D%2212%22%3Ethe+%3C%2Ffont%3E%3Cfont+face%3D%22Courier+New%22+size%3D%2212%22+color%3D%22%23FF0000%22%3EthumbPos+%3C%2Ffont%3E%3Cfont+face%3D%22Courier+New%22+size%3D%2212%22%3Eof+sb+%26quot%3BProgress%26quot%3B+to+tPos%3C%2Ffont%3E%3C%2Fp%3E%0D%0A%3Cp%3E%3Cfont+face%3D%22Courier+New%22+size%3D%2212%22+color%3D%22%23980517%22%3Eend+%3C%2Ffont%3E%3Cfont+face%3D%22Courier+New%22+size%3D%2212%22%3EShowProgress%3C%2Ffont%3E%3C%2Fp%3E%0D%0A%3Cp%3E%3C%2Fp%3E%0D%0A%3Cp%3EImagine+you+call+the+%3Cb%3EShowProgress%3C%2Fb%3E+handler+5+times+then+the+%3Ca%3EendValue%3C%2Fa%3E+of+the+scrollbar+will+be+the+number+of+lines+in+the+list+*+6+%3A-%29%3C%2Fp%3E%0D%0A%3Cp%3Eif+you+add+extra+calls+outside+the+loop%2C+you+will+add+as+many+to+get+the+count%21%3C%2Fp%3E%0D%0A%3Cp%3E%3C%2Fp%3E%0D%0A%3Cp%3EGenerally%2C+you+will+use+such+a+progress+bar+into+a+substack+treated+as+a+%3Ca%3Epalette%3C%2Fa%3E+or+a+%3Ca%3Emodal%3C%2Fa%3E+window+in+association+with+a+label+field+displaying+information.%3C%2Fp%3E%0D%0A%3Cp%3EBut+this+will+be+another+How+To+stack.%3C%2Fp%3E%0D%0A%3Cp%3E%3C%2Fp%3E uChasing K%3Cp%3E%3Cb%3EUsing+an+imported+animated+GIF+%3C%2Fb%3E%3C%2Fp%3E%0D%0A%3Cp%3E%3C%2Fp%3E%0D%0A%3Cp%3E%3Cimg+src%3D%221600%22%3E%26%239%3BIn+the+%3Ca%3ERev+images+library%3C%2Fa%3E+%28Development+%26gt%3B+Images+Library+menu+item%29+you+will+find+some+animated+gifs+you+can+use.%3C%2Fp%3E%0D%0A%3Cp%3E%3C%2Fp%3E%0D%0A%3Cp%3E%3Cimg+src%3D%221600%22%3E%26%239%3BIn+this+example%2C+the+%3Ci%3EChasing+Arrows%3C%2Fi%3E+image+has+been+imported+into+the+stack+and+treated+as+a+button+icon.+So+we+can+set+its+%3Ca%3ErepeatCount%3C%2Fa%3E+and+%3Ca%3EcurrentFrame%3C%2Fa%3E+properties+which+let+animate+or+stop+the+gif+and+fix+the+first+image+displayed.%3C%2Fp%3E%0D%0A%3Cp%3E%3C%2Fp%3E%0D%0A%3Cp%3E%3Cimg+src%3D%221600%22%3E%26%239%3BPlace+such+a+button+close+by+a+label+field+into+which+you+will+update+information+about+the+current+process.%3C%2Fp%3EuWatch %3Cp%3E%3Cfont+face%3D%22Courier+New%22+size%3D%2212%22+color%3D%22%230000FF%22%3Eset+%3C%2Ffont%3E%3Cfont+face%3D%22Courier+New%22+size%3D%2212%22%3Ethe+%3C%2Ffont%3E%3Cfont+face%3D%22Courier+New%22+size%3D%2212%22+color%3D%22%23FF0000%22%3Ecursor+%3C%2Ffont%3E%3Cfont+face%3D%22Courier+New%22+size%3D%2212%22%3Eto+watch%3C%2Ffont%3E%3C%2Fp%3E%0D%0A%3Cp%3E%3C%2Fp%3E%0D%0A%3Cp%3E%3Cimg+src%3D%221600%22%3E%26%239%3BUse+this+line+of+code+at+the+beginning+of+any+handler+to+indicate+that+the+computer+is+running+for+a+short+time+%28less+than+2%2F3+seconds+with+Mac+OS+since+it+is+not+an+animated+cursor+on+this+platform%29.%3C%2Fp%3E%0D%0A%3Cp%3E%3C%2Fp%3E%0D%0A%3Cp%3E%3Cimg+src%3D%221600%22%3E%26%239%3BDon%27t+worry%2C+Revolution+resets+automatically+the+cursor+to+the+default+cursor+when+the+handler+finishes.%3C%2Fp%3E%0D%0A%3Cp%3E%3C%2Fp%3E%0D%0A%3Cp%3E%3Cimg+src%3D%221600%22%3E%26%239%3BCheck+%3Ca%3Ecursor%3C%2Fa%3E+global+property+and+%3Ca%3Ewatch%3C%2Fa%3E+constant+in+the+Revolution+documentation.%3C%2Fp%3EuBarberBtn %3Cp%3E%3Cb%3EUsing+a+reference+to+an+animated+GIF%3C%2Fb%3E%3C%2Fp%3E%0D%0A%3Cp%3E%3C%2Fp%3E%0D%0A%3Cp%3E%3Cimg+src%3D%221600%22%3E%26%239%3BIn+the+%3Ca%3ERev+images+library%3C%2Fa%3E+%28Development+%26gt%3B+Images+Library+menu+item%29+you+will+find+some+animated+gifs+you+can+use.%3C%2Fp%3E%0D%0A%3Cp%3E%3C%2Fp%3E%0D%0A%3Cp%3E%3Cimg+src%3D%221600%22%3E%26%239%3BIn+this+example%2C+the+%3Ci%3EIndeterminate+Prog+Bar+Default%3C%2Fi%3E+image+is+treated+as+a+button+icon+without+importing+it.+We+only+refer+to+it+by+using+its+ID.%3C%2Fp%3E%0D%0A%3Cp%3E%3C%2Fp%3E%0D%0A%3Cp%3E%3Cimg+src%3D%221600%22%3E%26%239%3BSuch+a+way+to+indicate+waitings+is+not+as+satisfactory+as+using+a+progress+bar.%3C%2Fp%3E%0D%0A%3Cp%3EIn+addition%2C+as+for+any+animated+gif%2C+you+can%27t+modify+the+image+size.%3C%2Fp%3E%0D%0A%3Cp%3ENevertheless%2C+it+can+be+useful+combined+with+a+same+sized+progress+bar+in+order+to+differentiate+determinate+from+undeterminate+moments+%28as+in+SmartSave+plugin+from+%3Ca%3EFrederic+Rinaldi%3C%2Fa%3E%29.%3C%2Fp%3E Managing User Waiting U Lucida Grande U Courier New U Courier New U Courier New W Courier New @U Lucida Grande U Lucida Grande W Lucida Grande U Courier U Courier W Courier cREVGeneral scriptChecksum b.TQG bookmarks handlerList tempScript prevHandler scriptSelection char 92 to 91script t
/*
Managing user waiting Stack
By Eric Chatonet
3/16/05
http://www.sosmartsoftware.com/
*/
uObjectcsPickerBookmarks locations 1034,246,205 P yon preOpenStack set the style of this stack to modeless set the loc of this stack to the screenLoc end preOpenStack X cREVGeneral scriptChecksum JWJP bookmarks handlerList preOpenStacktempScript prevHandler preOpenStackscriptSelection char 121 to 120scripton preOpenStack
set the style of this stack to modeless
set the loc of this stack to the screenLoc
end preOpenStack
@ chasing arrows.gif @ 210073 GIF89a !NETSCAPE2.0 ! , <