#!/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 Resizing3 TXManaging Card ResizingXX ULucida Grande ULucida Grande WLucida Grande ULucida Grande @ULucida Grande UVerdana @UVerdana WCourier WCourier UCourier WLucida Grande cREVGeneral debugObjectscREVGeometryCachestackID1037 Pj/* Geometry stack By Eric Chatonet 7/4/05 http://www.sosmartsoftware.com/ */ on preOpenStack set the style of this stack to modeless set the loc of this stack to the screenLoc end preOpenStack ------------------------------ on closeStack repeat for each line tSubStack in the substacks of this stack close stack tSubStack end repeat end closeStack X cREVGeneralscriptChecksumqɵ%iv bookmarks handlerListpreOpenStack closeStack tempScript prevHandler preOpenStackscriptSelectionchar 229 to 228script

/*

Geometry stack

By Eric Chatonet

7/4/05

http://www.sosmartsoftware.com/

*/

on preOpenStack

set the style of this stack to modeless

set the loc of this stack to the screenLoc

end preOpenStack

------------------------------

on closeStack

repeat for each line tSubStack in the substacks of this stack

close stack tSubStack

end repeat

end closeStack

cREVGeometryCacheIDs112048444507010361120462808406102211204746835011032112037796340810061115824545996102111204748694545412112038212575410101120485972618103711203845071062356112046146693410201120467127702102711204738202911031112038210102510091120467059925102411204844057701034112046706114510251120377669670100411203820732121008112038450715423551120385614887160011204671295361028cREVGeometrycacheorder1120377669670 1120382073212 1120377963408 1120461466934 1120382101025 1120382125754 1120484405770 1115824545996 1120462808406 1120467059925 1120467061145 1120485972618 1120467127702 1120467129536 1120473820291 1120474683501 total21 4 3@$ Tabs}zon menuPick pNew,pOld hide grp pOld show grp pNew unlock screen with visual effect dissolve very fast end menuPick 3General Geometry Manager Scripting Tips and Tricks cREVGeometry Master,expectedRect 30,29,570,444Master,scalebottomDistance-56Master,movevDistancefalseMaster,scaleBottomObjectSideBottomMaster,movehDistancefalseMastertrueMaster,scalerightDistanceMaster,scaleBottomObjectRefcardMaster,scaleBottomAbsolutetrueMaster,cardRanking1Master,scaleBottomtrueMaster,scaleleftDistanceMaster,scaletopDistance cREVGeneralscriptChecksum0JӴU{hs!n revUniqueID 1120377669670 bookmarks handlerListmenuPick tempScript prevHandlermenuPickscriptSelectionchar 104 to 103script

on menuPick pNew,pOld

hide grp pOld

show grp pNew

unlock screen with visual effect dissolve very fast

end menuPick

Generali3Re cREVGeometry Master,expectedRect 51,82,549,439Master,scalebottomDistance-61Master,movevDistancefalseMaster,scaleBottomObjectSideBottomMaster,movehDistancefalseMastertrueMaster,scalerightDistanceMaster,scaleBottomObjectRefcardMaster,scaleBottomAbsolutetrueMaster,cardRanking1Master,scaleBottomtrueMaster,scaleleftDistanceMaster,scaletopDistance cREVGeneral revUniqueID 1120382073212 General)`@7V< cREVGeometry Master,expectedRect 55,86,545,402Master,scalebottomDistance-98Master,movevDistancefalseMaster,scaleBottomObjectSideBottomMaster,movehDistancefalseMastertrueMaster,scalerightDistanceMaster,scaleBottomObjectRefcardMaster,scaleBottomAbsolutetrueMaster,cardRanking1Master,scaleBottomtrueMaster,scaleleftDistanceMaster,scaletopDistance cREVGeneral revUniqueID 1120377963408  #How-To Stack #017 by Eric Chatonet " 7/3/05 Initial release MThis stack shows how to manage controls resizing according to card resizing. L Enjoy!  In many projects, windows can be resized by the user according to what he/she thinks the better to suit his/her current needs. When a window can be resized (its resizable property is set to true), the dimensions of some controls do not have to change but other ones have to be modified to fit the new window dimensions. " " + mControls dimensions can simply be related to the right/bottom edge of the card by positioning or by scaling. ,Sometimes, it can be more sophisticated :-) % Resizable and non resizable stacks @1600  " ,A new stack is always resizable by default. To manage this feature just check or uncheck the resizable check box in the Size & Position pane of the stack properties inspector. L L [(  About live resizing @1600   *Live resizing is a Mac OS X feature only. 7The liveResizing property of a stack is true or false. KYou set it in the Basic Properties pane of the stack properties inspector. When this property is set to true the stack window displays its contents changing during resizing, instead of redrawing the contents after the window is resized. & glossary/stack_window.xml& 2o =Live resizing, activated in this stack, requires a fast Mac. ^On Win32 and Linux, stack windows display their contents changing during resizing by default.  glossary/stack_window.xml !<  Card resizing limits @1600   You fix the limits between which the window may be resized by the user by specifying the minHeight and maxHeight, the minWidth and maxWidth of the stack in the Size & Position pane of the stack property inspector.  & =A max dimension set to 65535 (2^16 - 1) means infinite size. When the min is equal to the max, the user can resize one dimension only (useful for some projects where you set the minWidth equal to the maxWidth in order to allow the user to change only the card's height). Off topic but important: don't forget to set correctly the decorations of any non resizable stack to disable the maximize box in the Basics pane of the stack property inspector.   Using the Geometry Manager @1600   QRevolution provides the Geometry Manager in order to make objects resizing easy: ,we shall see in this section how to use it.  Using Scripting @1600   As the Geometry Manager does not appear always reliable (while a stack is under construction) you might prefer (as it is usual with MetaCard) to script all resizing by yourself: we shall see how to make it easy.  Tips and Tricks @1600   In this section, we shall see how to combine the geometry manager facilities with some additional scripting, solve issues, gain time and more. `W:Display Test StackEp4on mouseUp palette "ResizeTestStack" end mouseUp  cREVGeometry Master,expectedRect230,412,370,435Master,scalebottomDistanceMaster,movevDistance-77Master,moveVObjectSidebottomMaster,movehDistancefalseMastertrueMaster,scalerightDistanceMaster,moveVObjectRefcardMaster,moveVAbsolutetrueMaster,cardRanking1 Master,moveVtrueMaster,scaleleftDistanceMaster,scaletopDistance cREVGeneralscriptChecksumw:ً_!'Y bookmarks revUniqueID 1120461466934 handlerListmouseUpscriptSelection char 39 to 38 prevHandler tempScriptscript

on mouseUp

palette "ResizeTestStack"

end mouseUp

Geometry Managera3Re cREVGeometry Master,expectedRect 51,82,549,406Master,scalebottomDistance-61Master,movevDistancefalseMaster,scaleBottomObjectSideBottomMaster,movehDistancefalseMastertrueMaster,scalerightDistanceMaster,scaleBottomObjectRefcardMaster,scaleBottomAbsolutetrueMaster,cardRanking1Master,scaleBottomtrueMaster,scaleleftDistanceMaster,scaletopDistance cREVGeneral revUniqueID 1120382101025 Geometry Manager p8on linkClicked pLink revGoUrl pLink end linkClicked 7V< cREVGeometry Master,expectedRect 55,86,545,402Master,scalebottomDistance-98Master,movevDistancefalseMaster,scaleBottomObjectSideBottomMaster,movehDistancefalseMastertrueMaster,scalerightDistanceMaster,scaleBottomObjectRefcardMaster,scaleBottomAbsolutetrueMaster,cardRanking1Master,scaleBottomtrueMaster,scaleleftDistanceMaster,scaletopDistance cREVGeneralscriptChecksum)֜B3(=@ revUniqueID 1120382125754 bookmarks handlerList linkClicked tempScript prevHandlerscriptSelection char 38 to 37script

on linkClicked pLink

revGoUrl pLink

end linkClicked

 /Using the Geometry Manager to Set the Geometry .  The best way to learn how to use the Geometry Manager is to go to http://www.altuit.com/webs/altuit2/RunRev/VideoTutorials.htm where you will find four nice video tutorials brought to you by Chipp Walters from Altuit. B B< ~[ 'Nevertheless here are some principles: [To set the geometry of any control, you use the Geometry pane of the properties inspector. 0 0 8" A control can be positioned or scaled (but not both), in relation to one or more window edges or to one or more another objects. @1600    ! '[ /Geometry by scaling is used mainly for fields.   For instance, you can scale a field in relation to the right and bottom edges of the window: when the window will be resized, the field dimensions will increase or decrease according to the new dimensions of the window. OGeometry by position is used mainly for all other controls, label fields, etc.  : For instance, you can position a group of buttons in relation to the right and bottom edges of the window: when the window will be resized, the buttons owned by the group will be always positioned at the same place according to the new dimensions of the window. & In both cases, the relation can be: @1600 $ 1. Fixed  @2356     When scaling in the fixed mode, this means for instance that the top and the left of a field will not change and the distance between the right or the bottom of the field and the right or the bottom edge of the window will be invariant.     When positionning (buttons, groups, etc.) in the fixed mode, this means that the dimensions of the controls will not change but only their position relative to the card's edges.     2.  Proportional  @2355   2When scaling in the proportional mode, this means for instance that the top and the left of a field will not change and the distance between the right or the bottom of the field and the right or the bottom edge of the window will vary proportionaly according to the current width and height of the window.    % fThis mode is useful to scale multiple fields by increasing/decreasing all fields dimensions together. e  When positionning (buttons, groups, etc.) in the proportional mode, this means that the dimensions of the controls will not change but only their position relative to the card's edges will vary proportionaly according to the current width and height of the window.     `W: Geometry ManagerEpon mouseUp lock screen select btn ID 1036 put "MenuPick Geometry" into tMessage send "revBuildPropertyPalette" to stack "revTemplatePalette" put the defaultStack into tDefaultStack set the defaultStack to line 1 of the windows send tMessage to btn "Section" set the label of btn "Section" to "Geometry" set the menuHistory of btn "Section" to lineOffset("Geometry",btn "Section") unlock screen set the defaultStack to tDefaultStack end mouseUp  cREVGeometry Master,expectedRect230,412,370,435Master,scalebottomDistanceMaster,movevDistance-77Master,moveVObjectSidebottomMaster,movehDistancefalseMastertrueMaster,scalerightDistanceMaster,moveVObjectRefcardMaster,moveVAbsolutetrueMaster,cardRanking1 Master,moveVtrueMaster,scaleleftDistanceMaster,scaletopDistance cREVGeneralscriptChecksum\|b@F bookmarks revUniqueID 1120484405770 handlerListmouseUpscriptSelection char 46 to 45 prevHandlermouseUp tempScriptscript

on mouseUp

lock screen

select btn ID 1036

put "MenuPick Geometry" into tMessage

send "revBuildPropertyPalette" to stack "revTemplatePalette"

put the defaultStack into tDefaultStack

set the defaultStack to line 1 of the windows

send tMessage to btn "Section"

set the label of btn "Section" to "Geometry"

set the menuHistory of btn "Section" to lineOffset("Geometry",btn "Section")

unlock screen

set the defaultStack to tDefaultStack

end mouseUp

 4GeometryFixed.jpg @ BJFIFddDucky<Adobed       Bu &A2r$64 ? ,. U¬S",Oɧ}|SJsH0@Ð>RɳGȶtrikEbvi6+o+'pw;t `w4 cREVGeneral revUniqueID 1120384507106 3GeometryScaled.jpg @vBTJFIFddDucky<Adobed       B!"1A2a#QB$!1A"Qaq2 ? f>k+x[l{)Ĩ3+*`~l⏲j'Y8c1 x JwܣxMx%am qRXZu+@ꈤ/}T?,[.똞9CoZ@[z/1uC2oŬr"ַ q Ⱦzj|.&q$0Y.@|fROV5r,7XV-RJR»o,I=eC^./^vbP*K@j5pDXk9lpa%BbjvvWfvmHlkwFÇ4k`92'qlLV6QƉ8c:" (4,*O!q5nkeKeWݵeJO)ekBF.v/n:H 5n(vTE^n5rewʨGiBϸ_OY͏ppu [.$1i¨RCKB ׄf(_ٵ.WL6#xIZ \(^'^2p^͚XM"%uG W:_Z{UZPӮj.iJZRE+J7)])Zl=>TҔJU.S[)bzRҕ cREVGeneral revUniqueID 1120384507154@ Flche2.png  PNG  IHDR Kpl_ pHYs  gAMA|Q cHRMz%u0`:o_FIDATxb?,Xv$ϯ.?~~e'P#@11 @?~23_k_?V@p /÷>|()%ţ,%-F2\@ *n w JU牓/_ o_ū(II` b`AM]Nk5 _ ,?d+@021~K?@fӬ ~W XXY};w<||| ߿}Kw^W@koǑ74;Gڷo_߿uLL7qe`&Fqϟ_sPuFFfbA8`(10r=zk~ TxNP`=l|,IENDB` cREVGeneral revUniqueID 1120385614887PrintEpXon mouseUp revPrintField the name of field (the hilitedText of btn tabs) end mouseUp < cREVGeometry Master,expectedRect320,586,420,609Master,scalebottomDistanceMaster,movevDistance-29Master,moveVObjectSidebottomMaster,movehDistancefalseMastertrueMaster,scalerightDistanceMaster,moveVObjectRefcardMaster,moveVAbsolutetrueMaster,cardRanking1 Master,moveVtrueMaster,scaleleftDistanceMaster,scaletopDistance cREVGeneralscriptChecksum] 5Xt+( bookmarks revUniqueID 1115824545996 handlerListmouseUpscriptSelection char 91 to 90 prevHandlermouseUp tempScriptscript

on mouseUp

revPrintField the name of field (the hilitedText of btn tabs)

end mouseUp

SSS.png  Hon mouseDown revGoUrl "http://www.sosmartsoftware.com" end mouseDown "-PNG  IHDR". pHYs.#.#x?v 9iCCPPhotoshop ICC profilexڝwTTϽwz0z.0. Qf Ml@DEHb!(`HPb0dFJ|yyǽgs{.$O./ 'z8WGбx0Y驾A@$/7z HeOOҬT_lN:K"N3"$F/JPrb[䥟}Qd[Sl1x{#bG\NoX3I[ql2$ 8xtrp/8 pCfq.Knjm͠{r28?.)ɩL^6g,qm"[Z[Z~Q7%" 3R`̊j[~: w!$E}kyhyRm333: }=#vʉe tqX)I)B>== <8Xȉ9yP:8p΍Lg kk Ѐ$t!0V87`ɀ2A. @JPA#h'@8 .: ``a!2D!UH 2 dA>P ECqB**Z:]B=h~L2  5pN:|ó@ QC !H,G6 H9R ]H/r Aw( Q(OTJCm@*QGQ-(j MF+ 6h/*t:].G7Зw7 Xa<1:L1s3bXyeb~19 vGĩp+5qy^ oó|= ?'Htv`Ba3BDxHxE$Չ"XAP44077&9$An0;T2421t.54ld+s;# V]=iY9FgM֚k&=%Ō:nc1gcbcfX.}lGv{c)LŖN퉛w/p+/<j$.$%&㒣OdxTԂԑ4i3|o~C:&S@L u[Uo3C3OfIgwdO|;W-wsz 17jl8c͉̈́3+{%lKWr[ $ llGmnacOkE&EEY׾2⫅;K,KhtiN=e²{^-_V^Oo§s]?TWީrjVQ=w}`嚢zԶiו8>k׍ E  [ly邟~_Y53rW򯎼^{7so}x>|쇊z>yzgAMA|Q cHRMz%u0`:o_F"IDATxbax& O?"?z$<@,X< dz,,2{H?Hk4^B˧̌<4i_rD@,hgaӊb:޾zo]ǷDr8 4y6{5ݕ]WMż#٩ƧoZQqm8$Iyon0w 3+ `8 K d+ ,?ۏҟ]xۥW/~g33+?@S_B9.3_823J{;kc :e'HfCqΈ#{x#Sxs`]Ϛ[^>Y5c+?8r2,FF zh(~(M Ѱ狻v%?d|\>}aeE,^%oΦU{ǃ_Tdگ?w>ytfo <"JYղC"%.686lq-dG &pK\j{H@FeoFWwnAςDE|Փg{Y8~#%̅~f^U8]#50Ln>n^>~f[v6&߰ d cvF>H?~ߟ郹,",Z9}WX%ëXDHĄŠ 9J02qrrﳃ_+yop6E[?;3R.QYy844>?ǛGW50s[s|DYޜs%fq-9_KLu~W=\j^n+!a&lgǯ^ӏ]m rB#ǻ? hV.n6%Lz<х ;'￿ ?g{3蟿~/,r6 ~rOmsy9<9'x9 s-RXxծ|:,>̲ܿ?R= w3< 0 C_>;%'o3_?*imcރ?"2BqN.z6UI/"N~|zʲ/Ho_8AII[9Ԟ|d/O^0Q-$*ۻ= ?:Ű̢*'c*fy_ο> ^Q0si.c``_̒NL l [{p H),x]^ F o1ٍ-w}R0XxkqF_bh6^ . f6F Y. M;S.!IΞz+ *rO3߿z:;;El9%5<{{ˣa!0F6q!qNq M ߿,Oمye-d~82ċsɫ }?R\]WɫJEYDMI\XBV^]$L\ҺJj\6_d x }#ǩB__=r{ 73昳ps0+hڙ7}T~˻oya!!#v</^#.+YXUGN?FSHERTYQHXVDWߞ\RP&-<*e|o:ԹDZO\C7VUAqc㗶ɔ2SRS^!ѕ򊼡r2\vont@W޳2.>eͩ\Pvw׾zY-NݛoM7+Iq+Z( V2{sW/~PvKꙟ(wnZ_V!_xDľTbƯ@I]u &vnn:aAJJ}0-{aQf_>\~A>/x a|x]=҆'?X=ۜ\VqIe̩>[g$\be4 KkabEXOH9 ϟqɍO^-V`ʇ{<~y1I 2sps2 }g,,j2 UWUgWĿ630~}go |mĦ#".$"oϸd⃥>_v>AFN~A&HFLOhpIY PW&У O7., ٲ;|e  ,(|w(㷕 ~ մ6岛6mcC  ŋ"Ogw^z`)PK(B ]SLhُn gyf quc|xw铦-Wfh9Ӌn?zzȅ<U6t5J{ʜ&'O;/?_SģNZƯƐ1D#Ey8rD9*{2hl8zi{᧖UqP$(M[QWc 'Ӆn@ȏ>ov7V9:V Ɇ12 QWB`"EkyщYeWާӝwZ\i+7M4+' 6 7J7tAcV3! abF$Lup!5ӭ4ՠn es=>zZ$g?./}<9YS8RGJRpVܩ-M/)=PXT<_1CWMr!lqy[KIE 1A fzY-3W‘W]d7ۑRVͿ h(Tb 69|yfʖ V&%a&'Jt^c N@JXJԎ0yof6>0S'_!à-c0_cFˮ ¶ 2.5 XjS%-X%ԑ0ꀣÝz]m?^8%g*@̶2)x+[V,$p59'>qdI@%˟x/Ⱥ)e9RJ)sRCbN+$ %\w7[:·mwhMNl'bIг܂:m֐kuF]i.w/_ߞo]e3 p ؂_.b,&kWLZSϯ_nlvӓ~K@LTKT]PRV }xuc&G%+v6FQIUVPqyV<<>~z';;0v..Vf&fv6VfV`A痏RQJEME&X@w2(9XW.wLrjɲ&(A[հxUe||RZ*)b< D.N`Q+,'ۤ ԳQxɗ<~}i]`b'lg54`g|}ƉOOE.FB XKl ɻuVGDTT`}yBXvRbgW1P燔vx4v  _vM{Dun` `C73\&vU+_R^;LJן_]>[DLk~5+RigvYJQˏ[̎ZN32;?߿???ٝ;?>|sbҒڞR?>~x!*h/|&xwoJDX̎[cƒ+_ X'*fZ+k”WCּs Ý _=l>$ٹ#WTOGOGp[`0W'=?Ǡw\"zi+'Z{7Μ r7/_ZAˋfeTxoW@Ps&on?MM(WT ֥y E 6!ßon7?ҿ?>zr[ Ƿ7?y򆘦<^\۽bꅅ Wuov>ZBݩ>SV'_]:2@W_?6Zd~|t󯰲S_:w5w~O_7;GL7H^츹kfamo>xtv!޳+O=`F`]7^\9xɉ-o8ee~¯oo iWԿ=4!MU3A~1?@KOa}`~H/7737?>o(2A_?{u'>7 `==Wpi}dϧ'v.Ⱦ2Y^<ӇXyy~~{'6~u+h ë >q^!eV w2{*wξ ?pf/+po?>+a%,-G!xs{ UziN:Lȉj?bFbFZ`X!C_5 lfUHv#H{ y*ϊa-Xc \|(:mJ[}pwwK\ӻ^7#`@jE f{&0HaOeR^b:"8r G#Rτ%P>-Z[XhWCC VAGL[X _DGY36ؘs`AX@z?6e_4B+LI=88hY X"=G1"978H3X˄ ۦ { nfh !l8t~C)yyޞoՙoo-Hu,k-Te5ʈfFK\{Hpehu?" GDÆGZK'h?D⡕B>,,7ug'H= `ı} /Q@60,lk1'!l"F?M!H \2nha?h"?͈+#Ă'?[BX?Z'$V} e@)ii@:TZVJ@, \͌o'zM[{@D}3<bhT``4Ӥ(IENDB` cREVGeometry Master,expectedRect236,455,364,489Master,scalebottomDistanceMaster,movevDistance-28Master,moveVObjectSidebottomMaster,movehDistancefalseMastertrueMaster,scalerightDistanceMaster,moveVObjectRefcardMaster,moveVAbsolutetrueMaster,cardRanking1 Master,moveVtrueMaster,scaleleftDistanceMaster,scaletopDistance cREVGeneralscriptChecksum`}^.e bookmarks revUniqueID 1120462808406 handlerList mouseDownscriptSelection char 71 to 70 prevHandler tempScriptscript

on mouseDown

revGoUrl "http://www.sosmartsoftware.com"

end mouseDown

 Scriptinga3Re cREVGeometry Master,movevDistancefalseMaster,scalebottomDistance-94Master,expectedRect 51,82,549,406Master,scaleBottomObjectSideBottomMaster,movehDistancefalseMastertrueMaster,scaleBottomObjectRefcardMaster,scalerightDistanceMaster,cardRanking1Master,scaleBottomAbsolutetrueMaster,scaleBottomtrueMaster,scaletopDistanceMaster,scaleleftDistance cREVGeneral revUniqueID 1120467059925  Scripting)p7on linkClicked pLink revGoUrl pLink end linkClicked @7V< cREVGeometry Master,movevDistancefalseMaster,scalebottomDistance-98Master,expectedRect 55,86,545,402Master,scaleBottomObjectSideBottomMaster,movehDistancefalseMastertrueMaster,scaleBottomObjectRefcardMaster,scalerightDistanceMaster,cardRanking1Master,scaleBottomAbsolutetrueMaster,scaleBottomtrueMaster,scaletopDistanceMaster,scaleleftDistance cREVGeneral scriptChecksumxg-"ů handlerList linkClicked breakPointsscriptSelection char 54 to 53 bookmarks revUniqueID 1120467061145 prevHandler linkClicked tempScriptscript

on linkClicked pLink

revGoUrl pLink

end linkClicked

 $Using Scripting to Set the Geometry # |Even if the Geometry Manager makes geometry settings easy, all what it does can be done by scripting with more reliability. |In most cases, the geometry features you will need are simple: positionning a set of buttons and/or scaling a field or two. ^Fot these simple purposes, you will have a better control by scripting the geometry features. # Trapping the resizeStack message @1600    ^When the stack window is resized, the engine sends a resizeStack message to the current card. glossary/stack_window.xml  5 @ ySo you can write a resizeStack handler to set the geometry according to the 4 parameters which are passed by the engine:   Z - new width - new height - old width - old height @black end resizeStack @brown   How to position a control? @1600    There are many ways relating to any coordonate of the control position: top, bottom, left or right (using the loc does not appear handy for this purpose). 1But right and bottom appear the more convenient. For instance: $on resizeStack pNewWidth,pNewHeight @brown  @black 6 set the right of grp "My Buttons" to pNewWidth - 20 @black @blue  @red  % ; -- 20 pixels from the new right edge of the stack window  @hh"" DarkOrchid48 8 set the bottom of grp "My Buttons" to pNewHeight - 30 @black @blue  @red  & < -- 30 pixels from the new bottom edge of the stack window  @hh"" DarkOrchid49 end resizeStack @brown  Or with a one-liner: M set the bottomRight of grp "My Buttons" to pNewWidth - 20, pNewHeight - 30  @  @ & @; <  How to scale a control? @1600   @To resize a control you will calculate its new rect and set it: / / 3 $on resizeStack pNewWidth,pNewHeight @brown  @black  local tRect @black @blue   -----  @hh"" DarkOrchid4 , put the rect of fld "My Field" into tRect @black @blue  @red   , put (pNewWidth - 20) into item 3 of tRect  @blue  @black  @black  ; -- 20 pixels from the new right edge of the stack window  @hh"" DarkOrchid4 @hh"" DarkOrchid45 - put (pNewHeight - 30) into item 4 of tRect @blue  @black  @black  < -- 30 pixels from the new bottom edge of the stack window  @hh"" DarkOrchid49 + set the rect of fld "My Field" to tRect @blue  @red   end resizeStack @brown  =Note that the top and the left of the field are not changed.  Going further @1600   Once you have got the idea, you can script very complex geometry features, scaling objects, positioning them in relation to the others or scripting proportional features.  `W: Script ExampleEp5on mouseUp edit script of btn ID 1036 end mouseUp  cREVGeometry Master,expectedRect230,412,370,435Master,scalebottomDistanceMaster,movevDistance-77Master,moveVObjectSidebottomMaster,movehDistancefalseMastertrueMaster,scalerightDistanceMaster,moveVObjectRefcardMaster,moveVAbsolutetrueMaster,cardRanking1 Master,moveVtrueMaster,scaleleftDistanceMaster,scaletopDistance cREVGeneralscriptChecksumh7i* bookmarks revUniqueID 1120485972618 handlerListmouseUpscriptSelection char 41 to 40 prevHandlermouseUp tempScriptscript

on mouseUp

edit script of btn ID 1036

end mouseUp

Tips and Tricksa4Re cREVGeometry Master,movevDistancefalseMaster,scalebottomDistance-61Master,expectedRect 51,82,549,406Master,scaleBottomObjectSideBottomMaster,movehDistancefalseMastertrueMaster,scaleBottomObjectRefcardMaster,scalerightDistanceMaster,cardRanking1Master,scaleBottomAbsolutetrueMaster,scaleBottomtrueMaster,scaletopDistanceMaster,scaleleftDistance cREVGeneral revUniqueID 1120467127702 Tips and Tricks)p8on linkClicked pLink revGoUrl pLink end linkClicked @8V< cREVGeometry Master,movevDistancefalseMaster,scalebottomDistance-98Master,expectedRect 55,86,545,402Master,scaleBottomObjectSideBottomMaster,movehDistancefalseMastertrueMaster,scaleBottomObjectRefcardMaster,scalerightDistanceMaster,cardRanking1Master,scaleBottomAbsolutetrueMaster,scaleBottomtrueMaster,scaletopDistanceMaster,scaleleftDistance cREVGeneralscriptChecksum)֜B3(=@ bookmarks revUniqueID 1120467129536 handlerList linkClickedscriptSelection char 38 to 37 prevHandler tempScriptscript

on linkClicked pLink

revGoUrl pLink

end linkClicked

 Tips and Tricks  #Is setting groups geometry useful? " 9Why, when scaling, an object owned by a group disappear? 8 How to force a geometry update?  ?Have I to lock the screen when setting the geometry by script? > PWhat can I do when all geometry settings seem to have been completely garbaged? O @How to allow window resizing when the stack has no decorations? ? EMay I combine geometry set by script and using the Geometry Manager? D +How to set the relative width of 2 fields? * % Is setting groups geometry useful? @1600  " Yes. Imagine you have a set of butttons you want to position: it's easier to group them and set the group geometry instead of setting the geometry for each object. ; Why, when scaling, an object owned by a group disappear? @1600  8 You set the geometry for each object in the group but not for the group itself. So the group is not resized and some objects can be placed out of the group boundaries. " How to force a geometry update? @1600   If you have scripted a resizeStack handler to set the objects geometry, you can force a geometry update by sending the resizeStack message.   "U w If you have used the Geometry Manager to set objects geometry, you can force a geometry update by using the revUpdateGeometry command. l l } hFor instance you will find below the complete script of a stack resizer button which uses this command: local lMoving, lDistance @blue  ------------------------------ @hh"" DarkOrchid4 on mouseDown @brown   put true into lMoving  @blue  @ put the right of this stack - item 1 of the screenMouseloc, \  @blue  @red   @red. @black< = M the bottom of this stack - item 2 of the screenMouseLoc into lDistance @red   @red/ = end mouseDown @brown  ------------------------------ @hh"" DarkOrchid4 on mouseUp @brown   put false into lMoving  @blue  end mouseUp @brown  ------------------------------ @hh"" DarkOrchid4 on mouseRelease @brown   put false into lMoving  @blue  end mouseRelease @brown  ------------------------------ @hh"" DarkOrchid4 on mouseMove @brown   local tRect  @blue   -----  @hh"" DarkOrchid4  if lMoving then  @brown  @brown  T put item 1 to 2 of the rect of this stack,item 1 of the screenMouseloc+item 1 \  @blue  @red  @red< J Q of lDistance,item 2 of the screenMouseloc+item 2 of lDistance into tRect # @red# 1 R if item 3 of tRect < (the minWidth of this stack+the left of this stack) then  @brown  @red & @red9 = @brownM S put (the minWidth of this stack+the left of this stack) into item 3 of tRect  @blue  @red  @red* .$ end if  @brown  @brown R if item 4 of tRect < (the minHeight of this stack+the top of this stack) then  @brown  @red ' @red: = @brownM S put (the minHeight of this stack+the top of this stack) into item 4 of tRect  @blue  @red  @red+ .$ end if  @brown  @brown R if item 3 of tRect > (the maxWidth of this stack+the left of this stack) then  @brown  @red & @red9 = @brownM S put (the maxWidth of this stack+the left of this stack) into item 3 of tRect  @blue  @red  @red* .$ end if  @brown  @brown R if item 4 of tRect > (the maxHeight of this stack+the top of this stack) then  @brown  @red ' @red: = @brownM S put (the maxHeight of this stack+the top of this stack) into item 4 of tRect  @blue  @red  @red+ .$ end if  @brown  @brown  lock screen  @blue  ( set the rect of this stack to tRect  @blue  @red   Z set the bottomRight of me to the width of this stack - 3,the height of this stack - 3  @blue  @red  @ darkorange  @red% * @black< = @redA G  revUpdateGeometry    unlock screen  @blue  end if  @brown  @brown end mouseMove @brown  Note that this script assumes that all objects geometry have been set using the Geometry Manager except.. the resizer button itself. GDisplay an example stack by clicking on the "Scripted Resizer" button. F A Have I to lock the screen when setting the geometry by script? @1600  > #No, the engine does it for you :-) s What can I do when all geometry settings (set using the Geometry Manager) seem to have been completely garbaged? @1600  p Sometimes, all of a sudden, you resize a window where all objects geometry have been set using the Geometry Manager and... some objects (all) move to wrong locations, appear with bad dimensions, disappear from the card window boundaries, etc. and you are very, very worried :-( [Chipp Walters gives some cluses, using the revCacheGeometry command at the end of the page + + ; =http://www.altuit.com/webs/altuit2/RunRev/VideoTutorials.htm < bBut more often, as you have resized the window first or displayed another card, it does not work. >Then the only solution is to start geometry settings again... oIn order to clear all geometry settings in all objects in the current card, you can use the following handler: on ClearGeometry @brown   local tCount,tCustomPropSets  @blue  @black  -----  @hh"" DarkOrchid4 3 repeat with tCount = 1 to the number of controls  @brown  @brown   @red  & 3 put the customPropertySets of control tCount \  @blue  @red    into tCustomPropSets = delete line lineOffset("cREVGeometry",tCustomPropSets) \  @blue  @ darkorange @black :  of tCustomPropSets D set the customPropertySets of control tCount to tCustomPropSets  @blue  @red  % end repeat  @brown  @brown end ClearGeometry @brown  B How to allow window resizing when the stack has no decorations? @1600  ? aIf you set a stack decorations to empty, neither the titlebar nor the resizer will be displayed. VIf you need the window to be resized, you have to script a resizer button: see above. GDisplay an example stack by clicking on the "Scripted Resizer" button. F T May I combine geometry set by script and geometry set using the Geometry Manager? @1600  Q Yes. QAnd that is often useful to add some "cosmetic" enhancements like the following: cYou scale a field and want to show or hide its vertical scrollbar according to its new dimensions: on resizeStack @brown  < revUpdateGeometry -- lets the Geometry Manager do its job @black  @hh"" DarkOrchid4' . SetVScrollBar the long ID of fld "My field"  @red  ) -- show or hide a scrollbar: see below  @hh"" DarkOrchid4& end resizeStack @brown  .--------------------------------------------- @hh""- on SetVScrollBar pFld @brown  Q set the vScrollbar of pFld to the formattedHeight of pFld > the height of pFld  @blue  @red  @red$ 3 @redB H end SetVScrollBar @  - How to set the relative width of 2 fields? @1600  *  JDisplay an example stack by clicking on the "Two Fields Together" button. I I  Some geometry effects can't be obtained by using the Geometry Manager (they may occur without having to resize the stack window) but can be scripted easily.  KFor instance, you want to set the relative width of 2 fields between them. J wThen the user, according to the contents, will be able to set the width of both fields together to suit his/her needs. v DYou will find below the complete script of a "Move Columns" button: - - B  local lAllowDrag @blue  *----------------------------------------- @hh"") on mouseEnter @  1 set the cursor to 202805 -- move column cursor  @blue  @red   @hh"" DarkOrchid4  lock cursor @ @ end mouseEnter @  *----------------------------------------- @hh"") on mouseLeave @   unlock cursor  @ @  end mouseLeave @  *----------------------------------------- @hh"") on mouseDown @   put true into lAllowDrag  @  end mouseDown @brown  *----------------------------------------- @hh"") on mouseUp @   put false into lAllowDrag  @  end mouseUp @brown  *----------------------------------------- @hh"") on mouseRelease @   mouseUp -- @hh"" DarkOrchid4  @hh"" DarkOrchid4  end mouseRelease @  *----------------------------------------- @hh"") on mouseMove x,y @  @ > local tLeftFldName,tRightFldName,tLeftFldRect,tRightFldRect @ @  @)  ----- @ @hh"" ( if not lAllowDrag then exit mousemove  @  @  @   ----- @hh"" + put the uLeftFld of me into tLeftFldName @hh"" @ @hh""  @hh""   @hh""  @hh"" @ @hh""  @hh""  - put the uRightFld of me into tRightFldName  @  @  C if (x < the left of fld tLeftFldName + the uMinWidth of me) or \ @ @brown  @black  @red @ ' @ darkorange: @black< = S (x > the left of fld tLeftFldName + the uMaxWidth of me) then exit mousemove  @black  @red @ ' @ darkorange; @black= > @brown? C @blueD H  -----  @hh"" 5 put the rect of fld tLeftFldName into tLeftFldRect @  @  & 7 put the rect of fld tRightFldName into tRightFldRect  @  @  (  -----  @hh"" J put (x - (the uSpaceBetweenFlds of me / 2)) into item 3 of tLeftFldRect  @  @  @   @   @% ( @+ - K put (x + (the uSpaceBetweenFlds of me / 2)) into item 1 of tRightFldRect  @  @  @   @   @% ( @+ -  ----- @hh""  lock screen  @  3 set the rect of fld tLeftFldName to tLeftFldRect  @blue  @red  $ 5 set the rect of fld tRightFldName to tRightFldRect  @  @  & 2 set the loc of me to x, item 2 of the loc of me @ @blue  @red   @ darkorange  @black  @red( + @ darkorange/  unlock screen  @blue  end mouseMove @   =Note that the "Move Columns" button has 5 custom properties: <  -- uLeftFld: the short name of the left field , /- uRightFld: the short name of the right field . /- uMinWidth: the minimum width for both fields . /- uMaxWidth: the maximum width for both fields . >- uSpaceBetweenFlds : the space between both fields in pixels =  `W:Scripted ResizerEp7on mouseUp topLevel stack "ResizerOnly" end mouseUp  cREVGeometry Master,movevDistance-77Master,scalebottomDistanceMaster,expectedRect163,412,293,435Master,moveVObjectSidebottomMaster,movehDistancefalseMastertrueMaster,moveVObjectRefcardMaster,scalerightDistanceMaster,cardRanking1Master,moveVAbsolutetrue Master,moveVtrueMaster,scaletopDistanceMaster,scaleleftDistance cREVGeneralscriptChecksumN8WAh bookmarks revUniqueID 1120473820291 handlerListmouseUpscriptSelection char 22 to 21 prevHandlermouseUp tempScriptscript

on mouseUp

topLevel stack "ResizerOnly"

end mouseUp

Two Fields TogetherEp5on mouseUp toplevel stack "TwoFields" end mouseUp 1 cREVGeometry Master,movevDistance-77Master,scalebottomDistanceMaster,expectedRect305,412,435,435Master,moveVObjectSidebottomMaster,movehDistancefalseMastertrueMaster,moveVObjectRefcardMaster,scalerightDistanceMaster,cardRanking1Master,moveVAbsolutetrue Master,moveVtrueMaster,scaletopDistanceMaster,scaleleftDistance cREVGeneralscriptChecksumD0:Ն@Pp revUniqueID 1120474683501 bookmarks handlerListmouseUp tempScript prevHandlermouseUpscriptSelection char 22 to 21script

on mouseUp

toplevel stack "TwoFields"

end mouseUp

$Resize Alu.png @0xPNG  IHDR;֕J pHYs  gAMA|Q cHRMz%u0`:o_FIDATxb?9?@͛7d`.]@L ${ax˗,׬Y 4^xeD˗/ Bʕ+WX2 ҈T`@_t)@x5^zFd#@8aɒ%(6.^@8rhddv8_j@x4BJlذņuu@F"o"RIENDB` cREVGeneral revUniqueID 1120474869454 ButtonEx ## This script does not make sense by itself: ## I extracted it from my Rev Encoded Text Picker plugin ## only to show that you can set numerous and various statements ## inside a resizeStack handler on resizeStack pNewHeight,pNewWidth local tRect,tLoc ----- set the right of img "TitleBarRight.png" to pNewHeight ----- put the rect of img "TitleBarMain.png" into tRect put pNewHeight into item 3 of tRect set the rect of img "TitleBarMain.png" to tRect ----- put the rect of img "AluBg.png" into tRect put pNewHeight into item 3 of tRect set the rect of img "AluBg.png" to tRect ----- set the loc of grp "Tabs" to pNewWidth / 2,item 2 of the loc of grp "Tabs" ----- put the rect of fld "input" into tRect put (pNewHeight - 2) into item 3 of tRect put (pNewWidth - 22) into item 4 of tRect set the rect of fld "input" to tRect set the vScrollBar of fld "input" to \ the formattedHeight of fld "input" > the height of fld "input" if the dontWrap of fld "Input" then set the hScrollBar of fld "input" to \ the formattedWidth of fld "input" > the width of fld "input" end if ----- put the loc of fld "Title" into tLoc put pNewHeight / 2 into item 1 of tLoc set the loc of fld "Title" to tLoc ----- set the right of grp "Copy" to the right of grp "Tabs" + 1 set the right of grp "Help" to pNewHeight - 10 ----- set the bottom of grp "Replace" to pNewWidth + 6 ----- put the rect of img "AluBgBottom.png" into tRect put pNewHeight into item 3 of tRect set the rect of img "AluBgBottom.png" to tRect set the bottom of img "AluBgBottom.png" to pNewWidth set the top of grc "Line" to pNewWidth - 1 ----- set the bottomRight of btn "Resizer" to pNewHeight - 3, pNewWidth - 3 end resizeStack 6R cREVGeneralscriptChecksummj̱#!+^ revUniqueID 1120484445070 bookmarks handlerList resizeStack tempScript prevHandler resizeStackscriptSelectionchar 201 to 200script

## This script does not make sense by itself:

## I extracted it from my Rev Encoded Text Picker plugin

## only to show that you can set numerous and various statements

## inside a resizeStack handler

on resizeStack pNewHeight,pNewWidth

local tRect,tLoc

-----

set the right of img "TitleBarRight.png" to pNewHeight

-----

put the rect of img "TitleBarMain.png" into tRect

put pNewHeight into item 3 of tRect

set the rect of img "TitleBarMain.png" to tRect

-----

put the rect of img "AluBg.png" into tRect

put pNewHeight into item 3 of tRect

set the rect of img "AluBg.png" to tRect

-----

set the loc of grp "Tabs" to pNewWidth / 2,item 2 of the loc of grp "Tabs"

-----

put the rect of fld "input" into tRect

put (pNewHeight - 2) into item 3 of tRect

put (pNewWidth - 22) into item 4 of tRect

set the rect of fld "input" to tRect

set the vScrollBar of fld "input" to \

the formattedHeight of fld "input" > the height of fld "input"

if the dontWrap of fld "Input" then

set the hScrollBar of fld "input" to \

the formattedWidth of fld "input" > the width of fld "input"

end if

-----

put the loc of fld "Title" into tLoc

put pNewHeight / 2 into item 1 of tLoc

set the loc of fld "Title" to tLoc

-----

set the right of grp "Copy" to the right of grp "Tabs" + 1

set the right of grp "Help" to pNewHeight - 10

-----

set the bottom of grp "Replace" to pNewWidth + 6

-----

put the rect of img "AluBgBottom.png" into tRect

put pNewHeight into item 3 of tRect

set the rect of img "AluBgBottom.png" to tRect

set the bottom of img "AluBgBottom.png" to pNewWidth

set the top of grc "Line" to pNewWidth - 1

-----

set the bottomRight of btn "Resizer" to pNewHeight - 3, pNewWidth - 3

end resizeStack

ResizeTestStack3|9\ Test Stack99 ULucida Grande WLucida GrandecREVGeometryCachestackID1012 Pqon preOpenStack set the loc of this stack to the loc of stack (the mainStack of this stack) end preOpenStack 9\ cREVGeneralscriptChecksumyu bookmarks handlerList preOpenStack tempScript prevHandlerscriptSelection char 94 to 93script{

on preOpenStack

set the loc of this stack to the loc of stack (the mainStack of this stack)

end preOpenStack

cREVGeometryCacheIDs112038571409010041120385730416100711204633279561012cREVGeometrycachetotal3order1120385714090  Test ` 9  ScalePropMaster,scaleBottomObjectSideBottomMaster,moveVObjectSidebottomMaster,scaleBottomscaleBottomtrueMaster,movehDistance -0.488818Master,scaleRightscaleBottomtrueMastertrueMaster,scaleBottomObjectRefcardMaster,moveVObjectRefcardMaster,moveHObjectRefcardMaster,scaleBottomAbsolutefalseMaster,moveVAbsolutefalseMaster,scaleBottomtrue Master,moveVfalseMaster,movevDistance-0.4Master,scalebottomDistance -0.173333Master,expectedRect 32,57,288,124Master,moveHObjectSiderightMaster,scaleRightAbsolutefalseMaster,scaleRighttrueMaster,scalerightDistance -0.079872Master,scaleRightObjectSideRightMaster,scaleRightObjectRefcardMaster,cardRanking2Master,scaletopDistanceMaster,scaleleftDistanceMaster,moveHAbsolutefalse Master,moveHfalse ScaleFixMaster,scaleBottomObjectSideBottomMaster,moveVObjectSidebottomMaster,scaleBottomscaleBottomtrueMaster,movehDistance -0.488818Master,scaleRightscaleBottomtrueMastertrueMaster,scaleBottomObjectRefcardMaster,moveVObjectRefcardMaster,moveHObjectRefcardMaster,scaleBottomAbsolutetrueMaster,moveVAbsolutefalseMaster,scaleBottomtrue Master,moveVfalseMaster,movevDistance-0.4Master,scalebottomDistance-26Master,expectedRect 32,57,288,124Master,moveHObjectSiderightMaster,scaleRightAbsolutetrueMaster,scaleRighttrueMaster,scalerightDistance-25Master,scaleRightObjectSideRightMaster,scaleRightObjectRefcardMaster,cardRanking2Master,scaletopDistanceMaster,scaleleftDistanceMaster,moveHAbsolutefalse Master,moveHfalsePosFixMaster,scaleBottomObjectSideBottomMaster,moveVObjectSidebottomMaster,scaleBottomscaleBottomtrueMaster,movehDistance-153Master,scaleRightscaleBottomtrueMastertrueMaster,scaleBottomObjectRefcardMaster,moveVObjectRefcardMaster,moveHObjectRefcardMaster,scaleBottomAbsolutefalseMaster,moveVAbsolutetrueMaster,scaleBottomfalse Master,moveVtrueMaster,movevDistance-60Master,scalebottomDistance -0.173333Master,expectedRect 32,57,288,124Master,moveHObjectSiderightMaster,scaleRightAbsolutefalseMaster,scaleRightfalseMaster,scalerightDistance -0.079872Master,scaleRightObjectSideRightMaster,scaleRightObjectRefcardMaster,cardRanking2Master,scaletopDistanceMaster,scaleleftDistanceMaster,moveHAbsolutetrue Master,moveHtruePosPropMaster,scaleBottomObjectSideBottomMaster,moveVObjectSidebottomMaster,scaleBottomscaleBottomtrueMaster,movehDistance -0.488818Master,scaleRightscaleBottomtrueMastertrueMaster,scaleBottomObjectRefcardMaster,moveVObjectRefcardMaster,moveHObjectRefcardMaster,scaleBottomAbsolutefalseMaster,moveVAbsolutefalseMaster,scaleBottomfalse Master,moveVtrueMaster,movevDistance-0.4Master,scalebottomDistance -0.173333Master,expectedRect 32,57,288,124Master,moveHObjectSiderightMaster,scaleRightAbsolutefalseMaster,scaleRightfalseMaster,scalerightDistance -0.079872Master,scaleRightObjectSideRightMaster,scaleRightObjectRefcardMaster,cardRanking2Master,scaletopDistanceMaster,scaleleftDistanceMaster,moveHAbsolutefalse Master,moveHtrue cREVGeometryMaster,moveVObjectSidebottomMaster,scaleBottomObjectSideBottomMaster,movehDistance -0.488818Master,scaleBottomscaleBottomtrueMaster,scaleRightscaleBottomtrueMastertrueMaster,moveVObjectRefcardMaster,scaleBottomObjectRefcardMaster,moveHObjectRefcardMaster,moveVAbsolutefalseMaster,scaleBottomAbsolutetrue Master,moveVfalseMaster,scaleBottomtrueMaster,expectedRect 32,57,288,124Master,scalebottomDistance-26Master,movevDistance-0.4Master,moveHObjectSiderightMaster,scaleRightAbsolutetrueMaster,scaleRighttrueMaster,scalerightDistance-25Master,scaleRightObjectRefcardMaster,scaleRightObjectSideRightMaster,cardRanking2Master,moveHAbsolutefalseMaster,scaleleftDistanceMaster,scaletopDistance Master,moveHfalse cREVGeneral revUniqueID 1120385714090   @2356  Resize this window `: Option Menu uon menuPick pItem local tRect,tImg,tPrompt ----- put the rect of this stack into tRect put item 1 of tRect + the minWidth of this stack into item 3 of tRect put item 2 of tRect + the minHeight of this stack into item 4 of tRect set the rect of this stack to tRect ----- switch lineOffset(pItem,me) case 1 put "

" & cr & "

" into tImg set the customProperties["cRevGeometry"] of fld "Test" to the customProperties["PosFix"] of fld "Test" break case 2 put "

" & cr & "

" into tImg set the customProperties["cRevGeometry"] of fld "Test" to the customProperties["PosProp"] of fld "Test" break case 3 put "

" & cr & "

" into tImg set the customProperties["cRevGeometry"] of fld "Test" to the customProperties["ScaleFix"] of fld "Test" break case 4 put "

" & cr & "

" into tImg set the customProperties["cRevGeometry"] of fld "Test" to the customProperties["ScaleProp"] of fld "Test" end switch put "

Resize this window

" into tPrompt set the htmlText of fld "Test" to tImg & tPrompt end menuPick { Scale OnlyDPosition Only Position Proportionaly Scale Only Scale Proportionaly cREVGeneralscriptChecksumtJM9=!D@4B revUniqueID 1120385730416 bookmarks handlerListmenuPick tempScript prevHandlermenuPickscriptSelectionchar 276 to 275scriptz

on menuPick pItem

local tRect,tImg,tPrompt

-----

put the rect of this stack into tRect

put item 1 of tRect + the minWidth of this stack into item 3 of tRect

put item 2 of tRect + the minHeight of this stack into item 4 of tRect

set the rect of this stack to tRect

-----

switch lineOffset(pItem,me)

case 1

put "<p></p>" & cr & "<p><img src=" & quote & "2356" & quote & "></p>" into tImg

set the customProperties["cRevGeometry"] of fld "Test" to the customProperties["PosFix"] of fld "Test"

break

case 2

put "<p></p>" & cr & "<p><img src=" & quote & "2355" & quote & "></p>" into tImg

set the customProperties["cRevGeometry"] of fld "Test" to the customProperties["PosProp"] of fld "Test"

break

case 3

put "<p></p>" & cr & "<p><img src=" & quote & "2356" & quote & "></p>" into tImg

set the customProperties["cRevGeometry"] of fld "Test" to the customProperties["ScaleFix"] of fld "Test"

break

case 4

put "<p></p>" & cr & "<p><img src=" & quote & "2355" & quote & "></p>" into tImg

set the customProperties["cRevGeometry"] of fld "Test" to the customProperties["ScaleProp"] of fld "Test"

end switch

put "<p><b>Resize this window</b></p>" into tPrompt

set the htmlText of fld "Test" to tImg & tPrompt

end menuPick

 Label Field d cREVGeneral revUniqueID 1120463327956 Resizing Style: TwoFields3m+C)Two Fields Together in a Resizable StackTxcREVGeometryCachestackID1008 Pqon preOpenStack set the loc of this stack to the loc of stack (the mainStack of this stack) end preOpenStack C cREVGeneralscriptChecksumyu bookmarks handlerList preOpenStackscriptSelection char 94 to 93 prevHandler preOpenStack tempScriptscript{

on preOpenStack

set the loc of this stack to the loc of stack (the mainStack of this stack)

end preOpenStack

cREVGeometryCacheIDs1120472408743100611299758921321008112047265504712881120472334217100511204722042771004cREVGeometrycachetotal5order*1120472334217 1120472204277 1120472408743  Left `b cREVGeometryMaster,scaleBottomObjectSideBottomMaster,movehDistance -0.841014Master,scaleRightscaleBottomtrueMastertrueMaster,scaleBottomObjectRefcardMaster,moveHObjectRefcardMaster,scaleBottomAbsolutetrueMaster,scaleBottomtrueMaster,expectedRect 21,20,119,100Master,scalebottomDistance-22Master,movevDistancefalseMaster,moveHObjectSiderightMaster,scaleRightAbsolutefalseMaster,scaleRightfalseMaster,scalerightDistance -0.730415Master,scaleRightObjectRefcardMaster,scaleRightObjectSideRightMaster,cardRanking1Master,moveHAbsolutefalseMaster,scaleleftDistanceMaster,scaletopDistance Master,moveHfalse cREVGeneral revUniqueID 1120472204277  Right ` cREVGeometryMaster,scaleBottomObjectSideBottomMaster,movehDistancefalseMastertrueMaster,scaleBottomObjectRefcardMaster,scaleBottomAbsolutetrueMaster,scaleBottomtrueMaster,movevDistancefalseMaster,scalebottomDistance-22Master,expectedRect125,20,394,224Master,scaleRightAbsolutetrueMaster,scaleRighttrueMaster,scalerightDistance-20Master,scaleRightObjectRefcardMaster,scaleRightObjectSideRightMaster,cardRanking2Master,scaletopDistanceMaster,scaleleftDistance cREVGeneral revUniqueID 1120472334217   ResizeFieldsB  local lAllowDrag,lHilitedLine ----------------------------------------- on mouseEnter set cursor to 1008 -- move column cursor lock cursor end mouseEnter ----------------------------------------- on mouseLeave unlock cursor end mouseLeave ----------------------------------------- on mouseDown put true into lAllowDrag put the hilitedLine of fld (the the uLeftFld of me) into lHilitedLine end mouseDown ----------------------------------------- on mouseUp put false into lAllowDrag set the hilitedLine of fld (the the uLeftFld of me) to lHilitedLine end mouseUp ----------------------------------------- on mouseRelease mouseUp end mouseRelease ----------------------------------------- on mouseMove x,y local tLeftFldName,tRightFldName,tLeftFldRect,tRightFldRect ----- if not lAllowDrag then exit mousemove ----- put the uLeftFld of me into tLeftFldName put the uRightFld of me into tRightFldName if (x < the left of fld tLeftFldName + the uMinWidth of me) or (x > the left of fld tLeftFldName + the uMaxWidth of me) then exit mousemove ----- put the rect of fld tLeftFldName into tLeftFldRect put the rect of fld tRightFldName into tRightFldRect ----- put (x - (the uSpaceBetweenFlds of me / 2)) into item 3 of tLeftFldRect put (x + (the uSpaceBetweenFlds of me / 2)) into item 1 of tRightFldRect ----- lock screen set the rect of fld tLeftFldName to tLeftFldRect set the rect of fld tRightFldName to tRightFldRect set the loc of me to x, item 2 of the loc of me unlock screen end mouseMove @v  uRightFldRight uMinWidth100 uMaxWidth260uSpaceBetweenFlds8 uLeftFldLeft cREVGeometry Master,movevDistancefalseMaster,scalebottomDistance-22Master,expectedRect116,20,126,224Master,scaleBottomObjectSideBottomMaster,movehDistancefalseMastertrueMaster,scaleBottomObjectRefcardMaster,scalerightDistanceMaster,cardRanking1Master,scaleBottomAbsolutetrueMaster,scaleBottomtrueMaster,scaletopDistanceMaster,scaleleftDistance cREVGeneral scriptChecksumzsleDZӚb΁ breakPoints handlerList>mouseEnter mouseLeave mouseDown mouseUp mouseRelease mouseMovescriptSelectionchar 107 to 106 bookmarks revUniqueID 1120472408743 prevHandler mouseDown tempScriptscript

local lAllowDrag,lHilitedLine

-----------------------------------------

on mouseEnter

set cursor to 1008 -- move column cursor

lock cursor

end mouseEnter

-----------------------------------------

on mouseLeave

unlock cursor

end mouseLeave

-----------------------------------------

on mouseDown

put true into lAllowDrag

put the hilitedLine of fld (the the uLeftFld of me) into lHilitedLine

end mouseDown

-----------------------------------------

on mouseUp

put false into lAllowDrag

set the hilitedLine of fld (the the uLeftFld of me) to lHilitedLine

end mouseUp

-----------------------------------------

on mouseRelease

mouseUp

end mouseRelease

-----------------------------------------

on mouseMove x,y

local tLeftFldName,tRightFldName,tLeftFldRect,tRightFldRect

-----

if not lAllowDrag then exit mousemove

-----

put the uLeftFld of me into tLeftFldName

put the uRightFld of me into tRightFldName

if (x < the left of fld tLeftFldName + the uMinWidth of me) or (x > the left of fld tLeftFldName + the uMaxWidth of me) then exit mousemove

-----

put the rect of fld tLeftFldName into tLeftFldRect

put the rect of fld tRightFldName into tRightFldRect

-----

put (x - (the uSpaceBetweenFlds of me / 2)) into item 3 of tLeftFldRect

put (x + (the uSpaceBetweenFlds of me / 2)) into item 1 of tRightFldRect

-----

lock screen

set the rect of fld tLeftFldName to tLeftFldRect

set the rect of fld tRightFldName to tRightFldRect

set the loc of me to x, item 2 of the loc of me

unlock screen

end mouseMove

Petit rond entre champs.png  @PNG  IHDRo& pHYs  gAMA|Q cHRMz%u0`:o_FwIDATxb\r{2ڵݝٙ EEE.^ ($3?~0 HKKcScxÑ#GaÆ @4@L ?bǏ@|x5ANIENDB` cREVGeneral revUniqueID 1120472655047 move column D81H11H11 cREVGeneral revUniqueID 1129975892132 bookmarks handlerList tempScript prevHandlerscriptSelection char 1 to 0script ResizerOnly1 cREVGeometryCachestackID1005 Ppon preOpenStack set the loc of this stack to the loc of stack (the mainStack of this stack) end preOpenStack  cREVGeneralscriptChecksum,xo1Z s bookmarks handlerList preOpenStackscriptSelectionchar 111 to 110 prevHandler tempScriptscriptk

on preOpenStack

set the loc of this stack to the loc of stack (the mainStack of this stack)

end preOpenStack

cREVGeometryCacheIDs1108038189799100311204745100711005cREVGeometrycachetotal2order1108038189799 1120474510071 Resizer*Blocal lMoving,lDistance ------------------------------------- on mouseDown put true into lMoving put the right of this stack - item 1 of the screenMouseloc,the bottom of this stack - item 2 of the screenMouseLoc into lDistance end mouseDown ------------------------------------- on mouseUp put false into lMoving unlock cursor end mouseUp ------------------------------------- on mouseRelease put false into lMoving unlock Cursor end mouseRelease ------------------------------------- on mouseMove if lMoving then put item 1 to 2 of the rect of this stack,item 1 of the screenMouseloc+item 1 of lDistance,item 2 of the screenMouseloc+item 2 of lDistance into tRect if item 3 of tRect < (the minWidth of this stack+the left of this stack) then put (the minWidth of this stack+the left of this stack) into item 3 of tRect if item 4 of tRect < (the minHeight of this stack+the top of this stack) then put (the minHeight of this stack+the top of this stack) into item 4 of tRect if item 3 of tRect > (the maxWidth of this stack+the left of this stack) then put (the maxWidth of this stack+the left of this stack) into item 3 of tRect if item 4 of tRect > (the maxHeight of this stack+the top of this stack) then put (the maxHeight of this stack+the top of this stack) into item 4 of tRect lock screen set the rect of this stack to tRect set the bottomRight of me to the width of this stack - 3, the height of this stack - 3 unlock screen end if end mouseMove Resize this window$ cREVGeometryMaster,moveVObjectSidebottomMaster,movehDistance-10MastertrueMaster,moveVObjectRefcardMaster,moveHObjectRefcardMaster,moveVAbsolutetrue Master,moveVtrueMaster,movevDistance-9Master,scalebottomDistanceMaster,expectedRect507,482,522,497Master,moveHObjectSiderightMaster,scalerightDistanceMaster,cardRanking2Master,scaletopDistanceMaster,moveHAbsolutetrueMaster,scaleleftDistance Master,moveHtrue cREVGeneralscriptChecksum\x9FaS revUniqueID 1108038189799 bookmarks handlerList(mouseDown mouseUp mouseRelease mouseMove tempScript prevHandler mouseDownscriptSelectionchar 1376 to 1476script

local lMoving,lDistance

-------------------------------------

on mouseDown

put true into lMoving

put the right of this stack - item 1 of the screenMouseloc,the bottom of this stack - item 2 of the screenMouseLoc into lDistance

end mouseDown

-------------------------------------

on mouseUp

put false into lMoving

unlock cursor

end mouseUp

-------------------------------------

on mouseRelease

put false into lMoving

unlock Cursor

end mouseRelease

-------------------------------------

on mouseMove

if lMoving then

put item 1 to 2 of the rect of this stack,item 1 of the screenMouseloc+item 1 of lDistance,item 2 of the screenMouseloc+item 2 of lDistance into tRect

if item 3 of tRect < (the minWidth of this stack+the left of this stack) then put (the minWidth of this stack+the left of this stack) into item 3 of tRect

if item 4 of tRect < (the minHeight of this stack+the top of this stack) then put (the minHeight of this stack+the top of this stack) into item 4 of tRect

if item 3 of tRect > (the maxWidth of this stack+the left of this stack) then put (the maxWidth of this stack+the left of this stack) into item 3 of tRect

if item 4 of tRect > (the maxHeight of this stack+the top of this stack) then put (the maxHeight of this stack+the top of this stack) into item 4 of tRect

lock screen

set the rect of this stack to tRect

set the bottomRight of me to the width of this stack - 3, the height of this stack - 3

unlock screen

end if

end mouseMove

CloseEp+on mouseUp close this stack end mouseUp XHR cREVGeometryMaster,moveVObjectSidebottomMaster,movehDistance-0.5MastertrueMaster,moveVObjectRefcardMaster,moveHObjectRefcardMaster,moveVAbsolutefalse Master,moveVtrueMaster,movevDistance-0.5Master,scalebottomDistanceMaster,expectedRect151,171,233,194Master,moveHObjectSiderightMaster,scalerightDistanceMaster,cardRanking2Master,scaletopDistanceMaster,moveHAbsolutefalseMaster,scaleleftDistance Master,moveHtrue cREVGeneralscriptChecksume0e-+ Pb bookmarks revUniqueID 1120474510071 handlerListmouseUpscriptSelection char 30 to 29 prevHandler tempScriptscript

on mouseUp

close this stack

end mouseUp