REVO2700W AltLayout2Xon openStack end openStack on preOpenStack end preOpenStack on resizeStack end resizeStack on closeStack end closeStack on doIt #answer "put your plugin script in the doIt handler of the stack script!" end doIt f7altResizeControlListaltStackHeight311,42altToggleSizeSmallaltStackWidth358,358Layout Manager UtahomaWtahoma Wtahoma U Courier NewUtahoma Ums sans serif Utahoma WTahoma Wtahoma WVerdana UVerdana ULucida Grande Utahoma UTahoma UTahoma UTahoma cREVGeneral debugObjectsbreakpointconditions breakpointsbreakpointstates P ^--> all handlers on openCard initMe end openCard on closeStack remove script of btn "LayoutMgrLib" from front end closeStack on initMe lock messages insert script of btn "LayoutMgrLib" into front put the platform into tPlatform switch tPlatform case "MacOS" set the hilitedButton of group "LayoutMode" to 1 break case "Win32" set the hilitedButton of group "LayoutMode" to 2 break default set the hilitedButton of group "LayoutMode" to 3 break end switch unlock messages end initMe on stripandship unhilite btn "Move Right" of stack "altLayout" unhilite btn "Move Down" of stack "altLayout" unhilite btn "Scale Right" of stack "altLayout" unhilite btn "Scale Down" of stack "altLayout" put "" into fld "fldObject" of stack "altLayout" put "" into fld "fldTopStack" of stack "altLayout" ControlHasProps false end stripandship on ControlHasProps tBool if tBool is true then hide img "pin_grey" of stack "altLayout" show img "pin_blue" of stack "altLayout" else hide img "pin_blue" of stack "altLayout" show img "pin_grey" of stack "altLayout" end if end ControlHasProps on altGetProperties pID unhilite btn "Move Right" of stack "altLayout" unhilite btn "Move Down" of stack "altLayout" unhilite btn "Scale Right" of stack "altLayout" unhilite btn "Scale Down" of stack "altLayout" unhilite btn "Center Width" of stack "altLayout" unhilite btn "Center Height" of stack "altLayout" ControlHasProps false set the hilite of btn "blockLoc" of stack "altLayout" to the lockLoc of pID set the hilite of btn "bvisible" of stack "altLayout" to the visible of pID put the hilitedButtonName of grp "LayoutMode" of stack "altLayout" into tMode replace space with "" in tMode if "altLayoutManager" is among the lines of the customPropertySets of pID then ControlHasProps true set the customPropertySet of pID to "altLayoutManager" if "altCmd" is among the lines of the customKeys of pID then put the altCmd of pID into tCmds replace comma with cr in tCmds replace ":" with comma in tCmds repeat for each line L in tCmds switch item 1 of L case "SX" -->SCALES RIGHT hilite btn "Scale Right" of stack "altLayout" break case "SY" -->SCALES DOWN hilite btn "Scale Down" of stack "altLayout" break case "MX" --> MOVES RIGHT hilite btn "Move Right" of stack "altLayout" break case "MY" --> MOVES DOWN hilite btn "Move Down" of stack "altLayout" break case "CX" --> CENTERS ALONG THE X AXIS (NO SCALE) hilite btn "Center Width" of stack "altLayout" break case "CY" --> CENTERS ALONG THE Y AXIS (NO SCALE) hilite btn "Center Height" of stack "altLayout" break end switch end repeat end if set the customPropertySet of pID to empty end if set the hilite of btn "resizable" of stack "altLayout" to the resizable of stack the topStack end altGetProperties on makeControlsList checkForAltLayoutLib set the defaultStack to the topStack put the short name of the topStack into tTopStack set the wholeMatches to true put the long ID of the current card of stack tTopStack into tCurrCdID lock messages repeat with x = 1 to the number of cds in stack tTopStack go cd x put "" into tDupeNamesList repeat with y = 1 to the number of controls in the current card of stack tTopStack put the long id of control y of cd x of stack tTopStack into tObjID if "altLayoutManager" is among the lines of the customPropertySets of tObjID then --> WE NEED TO CHECK FOR DUPLICATE NAMES AND NOTIFY USER IF THERE ARE SOME put the name of control y into tTestForDupe if lineOffset(tTestForDupe,tDupeNamesList) is not 0 then --> A CONTROL WITH THIS NAME EXISTS answer warning "You have two controls on cd: " &y& " with the same name:" & cr &\ tTestForDupe &cr&cr& "Please rename one!" go tCurrCdID unlock messages exit to top end if put the name of control y of cd x of stack tTopStack & cr after tDupeNamesList --> CHECK TO SEE IF THIS CONTROL IS IN A BG GRP #put the long id of control y of cd x of stack tTopStack into tObjID if tObjID contains "group" then --> CHECK TO SEE IF IT IS BG GRP put the backgroundIDs of stack tTopStack into tGrpID # of cd x of stack tTopSTack into tGrpID repeat for each line U in tGrpID put "group id " & U into tID if tID is in tObjID then --> IT IS A BACKGROUND GRP CONTROL SO DELETE THE CARD/STACK REF put offset(" of card",tObjID) into tStart delete char tStart to the length of tObjID of tObjID if tObjID is among the lines of tControlList then put "" into tObjID end if exit repeat end if end repeat end if --> TRACK EACH CONTROL SO THAT WE CAN LATER SET A PROPERTY FOR THE CONTROLLIST if tObjID is not "" then put tObjID & cr after tControlList end if end repeat end repeat delete last char of tControlList go tCurrCdID unlock messages --> SAVE THE CONTROL LIST FOR PARSING ON STARTUP --> THIS WAY YOU DON'T HAVE TO DO THRU EACH OBJECT ON EACH CD, JUST CHECK THIS LIST --> ALSO NEED TO REPLACE THE ABSOLUTE STACK NAME BECAUSE IT MAY CHANGE IN THE STANDALONE --> CHANGED TO MAKE PERFORMANCE FASTER FOR MULTIPLE CARD STACKS set itemDel to quote put empty into tList repeat for each line L in tControlList put L into tStr if tStr contains " stack" then put item -1 of L into tReplaceStr replace tReplaceStr with "" in tStr end if put tStr & cr after tList end repeat if tList <> "" then delete last char of tList set the altResizeControlList of stack tTopStack to tList set the priv_ResizeControlList of stack tTopStack to tControlList end makeControlsList on checkForAltLayoutLib if the short name of the topStack is "altLayout" then answer "Can't edit the Layout Manager stack!" exit to top end if if char 1 to 3 of the short name of the topStack is "rev" then answer "Can't edit 'rev' stacks." with "Go ahead anyway!" or "Cancel" if it is "Cancel" then exit to top else answer warning "Are you sure you want to edit a rev stack?" with "Yes" or "No" if it is "No" then exit to top end if end if put the script of the topStack into tScript --> CHECK FOR LIBRARY STUFF THERE put lineOffset("--> ALTLAYOUT SCRIPTS",tScript) into tLine if tLine = 0 then answer warning "Please insert the altLayout library scripts first!" exit to top end if end checkForAltLayoutLib on setStackSize pType,pSize checkForAltLayoutLib put the hilitedButtonName of grp "LayoutMode" into tPropPrefix replace space with "" in tPropPrefix put the short name of the topstack into tTopStack switch pType case "minWidth" set the minWidth of stack tTopStack to pSize set the altMinWidth of stack tTopStack to pSize put "set the "& tPropPrefix & "altMinWidth of stack " & quote & tTopStack & quote & " to pSize" into tDo do tDo break case "maxWidth" set the maxWidth of stack the topStack to pSize set the altmaxWidth of stack tTopStack to pSize put "set the "& tPropPrefix & "altmaxWidth of stack " & quote & tTopStack & quote & " to pSize" into tDo do tDo break case "minHeight" set the minHeight of stack the topStack to pSize set the altminHeight of stack tTopStack to pSize put "set the "& tPropPrefix & "altminHeight of stack " & quote & tTopStack & quote & " to pSize" into tDo do tDo break case "maxHeight" set the maxHeight of stack the topStack to pSize set the altmaxHeight of stack tTopStack to pSize put "set the "& tPropPrefix & "altmaxHeight of stack " & quote & tTopStack & quote & " to pSize" into tDo do tDo break end switch end setStackSize f7altResizeScript global gAltChecking, gAltOldRect if gAltChecking <> true then put the rect of this stack into gAltOldRect CheckMouseState end if pass resizeStack altStackResizeScript get the priv_ResizeControlList of this stack repeat for each line L in it if the altLayoutManager["altCard"] of L = the name of this card then altSetRect L,(the altLayoutManager["altCmd"] of L) end if end repeat  cConsLastpropHandlerScroll2176 varCheckingfalse ScriptChunkchar 7243 to 7242 of field 93 HandlerName!makeResizeControlScript command cREVGeneral breakPoints  .12789;FGHILMR vers on mouseUp if the shiftKey is down then ask "New Version:" with me if it is empty then exit mouseUp put it into me set the altVers of img "altPlug.png" to it end if end mouseUp 0& cREVGeneral revUniqueID 1080977464839 v1.48 altPlug.pngD altOpenVisibletruealtVersv1.48altPlugFileName AltLayout.rev altOnClickMedoIt altUpdateURL5http://www.gadgetplugins.com/altplugins/AltLayout.txtLayout ManagerPNG  IHDR szzgAMA aIDATx]Uk""I|02 BBA(dsC($\B.5{$KH0ܔ(P{33{39a3kY-A3 X| nL1Z07ќA0?QZ7vED,?2`Б @C4ib QGЎv;!8a>DQL zq  OTDBD&"XEbl X%f3b+"w"cBG )z"CVÒ@2, H "A7͜D.E"YY4AgЇ*5CK*n˙Y@{}e㮵|9m+a81B_3[o+˸J.쿹/m~6j%]o`ǽ5`D\~*83Y0.`S>" #0,nU-=)`\UX7oK1_<+S`eլ(kF,6kZ SKyص V9Қ&?+Pey,<ö#Wy7DhjAkj j~%,2rh-*}ۤ,Lq4kڅxՁKD%W0rcX Q -܆*pnqdQ o9}w1ν\V3|פEU}(%Dvϼb!pr|O~9ŹWYz`;@h"4 i#7_]wWXXdD (0sv3gG/}-_6V!߄^dX[#JD {T`ynw&pե!&&[tr]8p5'ov(b f?5>ƍi6ߩE Y_]vk30c1=uQ+US pj=17fA()VsjNFtRE^A Uja4AZOF˄( H( ~mZGZTU0\vSa1J}vUpǏrR:6;B !&TIRHR0ƒJԐ$4I>-Y@¿^IENDB` cREVGeneral revUniqueID 1080977464842togglePaletteModeA*~on mouseUp if the mode of this stack is 1 then palette this stack else toplevel this stack end if end mouseUp @ cREVGeneral revUniqueID 1080977464921  toggleSizebBPon mouseUp if the altToggleSize of this stack is "Large" then toggleSize "Small" set the icon of me to 200275 else toggleSize "Large" set the icon of me to 200276 end if end mouseUp on toggleSize pFrom put the rect of stack "altLayout" into tRect if pFrom is "Small" then insert script of btn "LayoutMgrLib" into front put "Layout Mgr ON" into fld "tStatus" set the altToggleSize of this stack to "Small" set the rect of stack "altLayout" to item 1 of tRect, item 2 of tRect, \ item 1 of tRect + item 1 of the altStackWidth of stack "altLayout", \ item 2 of tRect + item 1 of the altStackHeight of stack "altLayout" else remove script of btn "LayoutMgrLib" from front put "Layout Mgr OFF" into fld "tStatus" set the altToggleSize of this stack to "Large" if the shiftKey is not down then set the rect of stack "altLayout" to item 1 of tRect, item 2 of tRect, \ item 1 of tRect + item 1 of the altStackWidth of stack "altLayout", \ item 2 of tRect + item 2 of the altStackHeight of stack "altLayout" end if end if end toggleSize @FaltContractedCdRect 0,0,358,111altExpandedCdRect 0,0,358,311S cREVGeneral revUniqueID 1080977905395 i301D: f 0($"!  @     < @&@. 90؃pW`p g 08<>???????????9p cREVGeneralscripteditorvscroll0 revUniqueID 1080978136434 tStatus ` cREVGeneral revUniqueID 1080979157848 Layout Mgr ON LayoutMgrLibEpon selectedObjectChanged if the tool contains "pointer" then send ("toggleArrow" && "true") to btn "bArrow" of stack "altLayout" else send ("toggleArrow" && "false") to btn "bArrow" of stack "altLayout" end if put the topStack into fld "fldTopStack" of stack "altLayout" set the hilite of btn "resizable" of stack "altLayout" to the resizable of the topStack if the selectedObject is not empty then put the name of the selectedObject into fld "fldObject" of stack "altLayout" altGetProperties the long ID of the selectedObject else stripAndShip end if pass selectedObjectChanged end selectedObjectChanged > altRight4P cREVGeneralscripteditorvscroll0 revUniqueID 1080979212543  LayoutModei/--> all handlers on mouseUp get the hilitedButtonName of grp "LayoutMode" send "altSetLayoutMode" && it to the topStack put the rect of the topStack into tRect get the minWidth of stack the topStack if it < 33 then answer information "Please set the minWidth for this stack (under Stack tab)." exit to top else put the minWidth of stack the topStack into tW end if get the minHeight of stack the topStack if it < 33 then answer information "Please set the minHeight for this stack (under Stack tab)." exit to top else put the minHeight of stack the topStack into tH end if set the rect of stack the topStack to item 1 of tRect, item 2 of tRect, \ item 1 of tRect + tW, item 2 of tRect + tH resizeStack if the selectedObject is not empty then put the name of the selectedObject into fld "fldObject" of stack "altLayout" altGetProperties the long ID of the selectedObject else set the hilite of btn "resizable" of stack "altLayout" to the resizable of stack the topStack end if end mouseUp 9  cConsLastpropHandlerScroll16 varCheckingfalse ScriptChunkchar 126 to 125 of field 93 HandlerName mouseUp on cREVGeneral revUniqueID 1080980386003 breakPointsMac OSX`D=J cREVGeneral revUniqueID 1080980329138  Win XP`DJ cREVGeneral revUniqueID 1080980358596  Other`DJ cREVGeneral revUniqueID 1080980370550   Field 1 ,N cREVGeneral revUniqueID 1080980413714 Layout Mode: Button 1A ,T cREVGeneral revUniqueID 1080981350921  Button 2}--> all handlers on menuPick p hide grp "gControl" hide grp "gStack" hide grp "gHelp" put "g" & p into tGrp show grp tGrp if p is "Stack" then put the short name of the topStack into fld "fldTopStack" end if end menuPick 2VSControl Stack Help cConsLastHandlerScroll0 varCheckingfalse HandlerName all handlers cREVGeneral revUniqueID 1080982236320 breakPoints  gControla JJ cREVGeneral revUniqueID 1080982684116bArrowCpon mouseUp if the mode of this stack is 4 then if the tool contains "pointer" then choose browse tool toggleArrow false ControlHasProps false else choose the pointer tool toggleArrow true end if end if end mouseUp on toggleArrow pTurnOn if pTurnOn is true then set the backColor of me to 128,128,128 set the topColor of me to black set the bottomColor of me to white else set the colors of me to "" end if end toggleArrow @N"2 cREVGeneral revUniqueID 1080977687673 Field 1  pz cREVGeneral revUniqueID 1080979157838 Selected Control:  fldObject (@: cREVGeneral revUniqueID 1080979157839   blockLoc`eon mouseUp if the selectedObject is not empty then set the lockLoc of the selectedObject to the hilite of me else beep end if end mouseUp 4>lockLoc cREVGeneral revUniqueID 1080979157840 Field 1 > cREVGeneral revUniqueID 1080979157841 Behavior: Move Right`Eon mouseUp if the hilite of me then unhilite btn "Scale Right" unhilite btn "Center Width" end if end mouseUp 4R cREVGeneral revUniqueID 1080979157842  Move Down`E|on mouseUp if the hilite of me then unhilite btn "Scale Down" unhilite btn "Center Height" end if end mouseUp 4R cREVGeneral revUniqueID 1080979157843  Scale Right`E{on mouseUp if the hilite of me then unhilite btn "Move Right" unhilite btn "Center Width" end if end mouseUp R cREVGeneral revUniqueID 1080979157844  Scale Down`E{on mouseUp if the hilite of me then unhilite btn "Move Down" unhilite btn "Center Height" end if end mouseUp R cREVGeneral revUniqueID 1080979157845 SetAltResizePropsep --> all handlers on mouseUp put the selectedObject into tObj if tObj is empty then beep answer "Please choose an object to set properties for!" exit to top end if checkForAltLayoutLib repeat for each line L in tObj setLayoutProp L end repeat end mouseUp on setLayoutProp pObj put the width of the topStack into tW put the height of the topStack into tH if the minWidth of the topStack <> tW or the minHeight of the topStack <> tH then answer warning the altMsg of me with "Go Ahead Anyway" or "Stop Now" if it is "Stop Now" then exit to top end if put the name of the current card of the topStack into tCard --> NEXT CHECK FOR OCCURENCES OF THIS CONTROL ON OTHER CARDS AS A BACKGROUND if "group" is among the words of pObj then --> PARSE OUT GROUP put offset("group",pObj) into tStart put pObj into tGrp if tStart is not 0 then delete char 1 to tStart-1 of tGrp if the backgroundbehavior of tGrp is true then put offset(" of",tGrp) into tEnd delete char tEnd to the length of tGrp of tGrp put last word of tGrp into tCard end if end if end if set the defaultStack to "altLayout" set the customPropertySet of pObj to "altLayoutManager" put the hilitedButtonName of grp "LayoutMode" into tPropPrefix replace space with "" in tPropPrefix --> SET THE CARDNAME PROPERTY put "set the altCard of pObj to tCard" into tDo do tDo --> SET ALTRECT PROPERTY put the rect of pObj into tRect set the altRect of pObj to tRect put "set the " & tPropPrefix & "altRect of pObj to tRect" into tDo do tDo --> SET THE ALTVIS PROPERTY put the vis of pObj into tVis put "set the " & tPropPrefix & "altVis of pObj to tVis" into tDo do tDo #put the altSetRectCmd of pObj into tCmd --> BUILD altCmd STRING put "" into tCmd switch case the hilite of btn "Move Right" --> MOVE RIGHT CHECKED put the right of pObj into tR put tR - tW into tR put "MX:" & tR & "," after tCmd break case the hilite of btn "Scale Right" --> SCALE RIGHT CHECKED put the right of pObj into tR put tR - tW into tR put "SX:" & tR & "," after tCmd break case the hilite of btn "Center Width" --> CENTER WIDTH CHECKED put the loc of pObj into tObjLoc put the loc of the current card of the topStack into tCardLoc put item 1 of tObjLoc - item 1 of tCardLoc into tXoffset put "CX:" & tXoffset & "," after tCmd break end switch switch case the hilite of btn "Move Down" --> MOVE DOWN CHECKED put the bottom of pObj into tB put tB-tH into tB put "MY:" & tB & "," after tCmd break case the hilite of btn "Scale Down" --> SCALE DOWN CHECKED put the bottom of pObj into tB put tB-tH into tB put "SY:" & tB & "," after tCmd break case the hilite of btn "Center Height" --> CENTER HEIGHT CHECKED put the loc of pObj into tObjLoc put the loc of the current card of the topStack into tCardLoc put item 2 of tObjLoc - item 2 of tCardLoc into tYoffset put "CY:" & tYoffset & "," after tCmd break end switch if tCmd is not empty then delete last char of tCmd end if set the altCmd of pObj to tCmd put "set the " & tPropPrefix & "altCmd of pObj to tCmd" into tDo do tDo set the customPropertySet of pObj to empty makeControlsList controlHasProps true end setLayoutProp 2 `altMsg

You can only Set Layout Props when the stack is at minWidth and minHeight!

Click on a Layout Mode radio btn (top) to set stack to minWidth and minHeight.

/sets the layout props for the selected control0Set Layout Props cConsLastpropHandlerScroll1145 varCheckingfalse HandlerNamesetLayoutProp command cREVGeneral revUniqueID 1080979157846scripteditorvscroll283 breakPointsscripteditorselection991 Clear Layout PropsEpon mouseUp put the selectedObject into tObj if tObj is empty then beep exit to top end if repeat for each line L in tObj put the customPropertySets of L into tPropsList set the wholeMatches to true delete line lineOffset("altLayoutManager",tPropsList) of tPropsList set the customPropertySets of L to tPropsList if the optionKey is not down then altGetProperties L makeControlsList end if end repeat end mouseUp  ialtMoveRightScript=set the right of **object** to (x-the altRight of **object**)1clears the layout props for the selected controlW cREVGeneral revUniqueID 1080979157847 breakPoints ( Center Width`Ezon mouseUp if the hilite of me then unhilite btn "Move Right" unhilite btn "Scale Right" end if end mouseUp \ cREVGeneral revUniqueID 1081660758474 )Center Height`Exon mouseUp if the hilite of me then unhilite btn "Scale Down" unhilite btn "Move Down" end if end mouseUp ` cREVGeneral revUniqueID 1081660758475 N bvisible`eon mouseUp if the selectedObject is not empty then set the visible of the selectedObject to the hilite of me else beep end if end mouseUp z>visible cREVGeneral revUniqueID 1103612038859 gStacka:function makeName pName set the defaultStack to the topStack put 1 into x repeat 2000 times if there is a btn pName then if isNumber(last char of pName) then delete last char of pName put pName & x into pName add 1 to x else return pName end if end repeat end makeName GL cREVGeneral revUniqueID 1080982730316 Field 1  z cREVGeneral revUniqueID 1080983165400 TopStack:  fldTopStack (@: cREVGeneral revUniqueID 1080983165401  ! resizable`Eon mouseUp if the short name of the topStack is "altLayout" then answer "Can't edit the Layout Manager stack!" exit to top end if set the resizable of stack the topStack to the hilite of me end mouseUp DR cREVGeneral revUniqueID 1080983384167 " Set MinWidthEpon mouseUp checkForAltLayoutLib if the shiftKey is down then answer information (word 2 of the short name of me) && "reset." setStackSize "minWidth", 33 else setStackSize "minWidth", the width of stack the topStack end if end mouseUp Bhshift-click to resetu cREVGeneral revUniqueID 1080985519748 #Set MinHeightEpon mouseUp checkForAltLayoutLib if the shiftKey is down then answer information (word 2 of the short name of me) && "reset." setStackSize "minHeight", 33 else setStackSize "minHeight", the height of stack the topStack end if end mouseUp hshift-click to resetu cREVGeneral revUniqueID 1080985519749 %Add altLayout libraryEp M--> all handlers on mouseUp if the short name of the topStack is "altLayout" then answer "Can't add to the Layout Manager stack!" exit to top end if if the mode of the topStack is not 1 then answer warning "You cannot add the Layout library scripts to a stack which is not in an editable window!" &cr& \ "Please topLevel the stack you wish to use." exit to top end if put the short name of the topStack into tTopStack put the width of stack tTopStack into tW put the height of stack tTopStack into tH set the minWidth of stack tTopStack to tW set the minHeight of stack tTopStack to tH set the altMinWidth of stack tTopStack to tW set the altMinHeight of stack tTopStack to tH set the MacOSXaltMinWidth of stack tTopStack to tW set the MacOSXaltMinHeight of stack tTopStack to tH put the script of stack tTopStack into tScript --> CHECK FOR LIBRARY STUFF THERE put lineOffset("--> ALTLAYOUT SCRIPTS",tScript) into tLine if tLine <> 0 then beep answer warning "altLayout Library scripts already exist in this stack." &cr& "Please Remove them before adding again." exit to top end if --> CHECK FOR RESIZESTACK HANDLER put tScript into tTest filter tTest with "*end*resizeStack*" if tTest is not empty then beep answer warning "A resizeStack handler already exists!!!" &cr& "Please REMOVE before adding Library." &cr& "You can add it in afterwards." exit to top end if --> CHECK FOR PREOPENSTACK HANDLER put tScript into tTest filter tTest with "*end*preopenstack*" if tTest is not empty then beep answer warning "A preOpenStack handler already exists!!!" &cr& "Please REMOVE before adding Library." &cr& "You can add it in afterwards." exit to top end if --> CHECK FOR PREOPENCARD HANDLER put tScript into tTest filter tTest with "*end*preopencard*" if tTest is not empty then beep answer warning "A preOpenCard handler already exists!!!" &cr& "Please REMOVE before adding Library." &cr& "You can add it in afterwards." exit to top end if --> NEED TO ADD LIBRARY SCRIPTS put cr & cr & the script of btn "altLayoutLib" of stack "altLayout" after tScript set the script of stack tTopStack to tScript answer information "Stack Scripts added!" send "initAltLayoutLib" to stack tTopStack end mouseUp raltMsg

This will copy the altLayout script to the stack script of stack

***TOPSTACK***

altCardOrStackMsg

Put script in Stack?

This will insert the altLayout Script Library at the end of your existing stack script

This will insert a preOpenStack handler into your stack script at the top of the scripts.

If you already have a preOpenStack script, it will add the command 'initAltLayoutLib' to the top of the preOpenStack script.

altMsg2

You need to add a start using command to the preOpenStack handler.

Would you like to do it now?

altMsg3

Can't add altLayout library stack because another mainStack with that library is already open.

Please close and remove from memory the mainStack:

**mainstack**

altLayoutMgrScripts--> altLayout MANAGER SCRIPTS local lChecking, lOldRect on doneResizing put false into lChecking put the rect of this stack into tRect put item 3 of tRect into tRight put item 4 of tRect into tBottom if item 3 of lOldRect > tRight or item 4 of lOldRect > tBottom then if checkHasDividerBeenUsed() is true then initAltLayoutLib send setStackRect && quote& tRect "e to this stack in 50 milliseconds end if end if end doneResizing on CheckMouseState put true into lChecking if the mouse is up then doneResizing else if "CheckMouseState" is not among the items of the pendingMessages then send CheckMouseState to me in 10 milliseconds end if end if end CheckMouseState --> END altLayout MANAGER SCRIPTSaltPreOpenStackDefault[on preOpenStack --> AUTO-GENERATED BY altLayout Manager initAltLayoutLib end preOpenStack(adds the altLayoutLib stack to topstacks cConsLastHandlerScroll378 varCheckingfalse ScriptChunkchar 685 to 684 of field 93 HandlerNamemouseUp message cREVGeneralscripteditorvscroll621 revUniqueID 1081645816960 breakPoints $Remove Layout ManagerEp on mouseUp checkForAltLayoutLib answer question "Do you wish to remove all references to Layout Manager from the topStack: " & cr & the short name of the topStack with "No" or "Yes" if it is "No" then exit to top if the short name of the topStack is "altLayout" then answer "Can't edit the Layout Manager stack!" exit to top end if set the defaultStack to the topStack put the script of the topStack into t put the long name of the topStack into tObj --> KILL altLayoutLib SCRIPTS IN STACK put the script of the topStack into t put lineoffset("--> ALTLAYOUT SCRIPTS",t) into tStartLine if tStart is not 0 then --> NEED TO DELETE IT put lineoffset("--> END ALTLAYOUT SCRIPTS",t) into tEndLine delete line tStartLine to tEndLine of t set the script of the topStack to t end if answer question "Delete all altLayout custom props from topStack?" with "No" or "Yes" if it is "Yes" then repeat with x = 1 to the number of cds in stack the topStack repeat with y = 1 to the number of controls in the current card of stack the topStack if "altLayoutManager" is among the lines of the customPropertySets of control y then get the customPropertySets of control y set the wholeMatches to true delete line lineOffset("altLayoutManager",it) of it set the customPropertySets of control y to it end if end repeat end repeat --> DELETE THE WINXP RESIZE CONTROL --> ALL THE IMAGES AND CURSORS ARE STORED IN THE altLayout LIBRARY answer question "Delete WinXP Resize Button?" with "No" or "Yes" if it is "Yes" then if there is a btn "altDrag" then delete btn "altDrag" if there is an img "drag.gif" then delete img "drag.gif" if there is an img "resizeCursor" then delete img "resizeCursor" end if end if --> DELETE THE STACK PROPS get the customKeys of the topStack set the wholeMatches to true delete line lineOffset("altMinHeight",it) of it delete line lineOffset("altMinWidth",it) of it delete line lineOffset("altMaxHeight",it) of it delete line lineOffset("altMaxWidth",it) of it delete line lineOffset("altResizeControlList",it) of it delete line lineOffset("altResizeScriptLocation",it) of it delete line lineOffset("MacOSXaltMinHeight",it) of it delete line lineOffset("MacOSXaltMinWidth",it) of it delete line lineOffset("MacOSXaltMaxHeight",it) of it delete line lineOffset("MacOSXaltMaxWidth",it) of it delete line lineOffset("WinXPaltMinHeight",it) of it delete line lineOffset("WinXPaltMinWidth",it) of it delete line lineOffset("WinXPaltMaxHeight",it) of it delete line lineOffset("WinXPaltMaxWidth",it) of it delete line lineOffset("OtheraltMinHeight",it) of it delete line lineOffset("OtheraltMinWidth",it) of it delete line lineOffset("OtheraltMaxHeight",it) of it delete line lineOffset("OtheraltMaxWidth",it) of it set the customKeys of the topStack to it answer information "Layout Manager successfully removed." end mouseUp =clears all stack and control props and library from topstacks cREVGeneral revUniqueID 1081645816961 breakPoints * Set MaxWidthEpon mouseUp checkForAltLayoutLib if the shiftKey is down then answer information (word 2 of the short name of me) && "reset." setStackSize "maxWidth", 65000 else setStackSize "maxWidth", the width of stack the topStack end if end mouseUp Bhshift-click to resetu cREVGeneral revUniqueID 1081733117958 +Set MaxHeightEpon mouseUp checkForAltLayoutLib if the shiftKey is down then answer information (word 2 of the short name of me) && "reset." setStackSize "maxHeight", 65000 else setStackSize "maxHeight", the height of stack the topStack end if end mouseUp hshift-click to resetu cREVGeneral revUniqueID 1081733117959 :Add WinXP Resize Control Gp--> all handlers on mouseUp checkForAltLayoutLib answer "This will add a resize control which is visible on Windows platforms only." & \ "Do you wish to continue?" with "No" or "Yes" if it is "No" then exit to top set the defaultStack to the topStack copy img "drag.gif" of stack "altLayout" to the topStack hide img "drag.gif" of the topStack copy img "resizeCursor" of stack "altLayout" to the topStack hide img "resizeCursor" of the topStack if there is a btn "altDrag" then answer warning "Delete btn 'altDrag' from the topStack?" with "No" or "Yes" if it is "No" then beep exit to top end if delete btn "altDrag" end if copy btn "altDrag" of stack "altLayout" to stack the topStack set the botRight of btn "altDrag" to the botRight of the current card set the lockLoc of btn "altDrag" to true set the icon of btn "altDrag" to the ID of img "drag.gif" of the topStack set the altWinCursor of btn "altDrag" to the ID of img "resizeCursor" of the topStack show btn "altDrag" --> SET PROPS FOR BTN set the customPropertySet of btn "altDrag" to "altLayoutManager" set the altCmd of btn "altDrag" to "MX:0,MY:0" set the WinXPaltCmd of btn "altDrag" to "MX:0,MY:0" put the rect of btn "altDrag" into tRect set the altRect of btn "altDrag" to tRect set the WinXPaltRect of btn "altDrag" to tRect set the customPropertySet of btn "altDrag" to empty makeControlsList end mouseUp KGAdds a standard resize control. Only visible when on Windows platformsw8 cConsLastpropHandlerScroll245 varCheckingfalse HandlerName cREVGeneral revUniqueID 1081815436580 breakPoints CAdd Horizontal DividerEpCon mouseUp checkForAltLayoutLib put the width of the topStack into tW put the height of the topStack into tH if the minWidth of the topStack <> tW or the minHeight of the topStack <> tH then answer warning the altMsg2 of me exit to top end if answer "This will add a horizontal resize control." & \ "Do you wish to continue?" with "No" or "Yes" if it is "No" then exit to top answer information the altMsg of me set the defaultStack to the topStack if there is not an img "hdividecursor.gif" then copy img "hdividecursor.gif" of stack "altLayout" to the topStack hide img "hdividecursor.gif" end if if there is not an img "horbar.jpg" then copy img "horbar.jpg" of stack "altLayout" to the topStack hide img "horbar.jpg" end if copy btn "horizDivider" of stack "altLayout" to the topStack set the icon of last btn to the id of img "horbar.jpg" set the vis of last btn to true if there is a btn "horizDivider" of the topStack then set the name of last btn to makeName("horizDivider") end if end mouseUp yaltMsg Don't forget to set the altBotObjects and altTopObjects of the horizontal divider. Put each object on a separate line with item 2 of the line indicating the behavior of the object: M for Move and S for Scale Also, see the script for the constant margin settings.altMsg2SYou can only add a divider when the stack is set to the minWidth and the minHeight! cREVGeneral revUniqueID 1103531431479 BAdd Vertical DividerEp>on mouseUp checkForAltLayoutLib put the width of the topStack into tW put the height of the topStack into tH if the minWidth of the topStack <> tW or the minHeight of the topStack <> tH then answer warning the altMsg2 of me exit to top end if answer "This will add a vertical resize control." & \ "Do you wish to continue?" with "No" or "Yes" if it is "No" then exit to top answer information the altMsg of me set the defaultStack to the topStack if there is not an img "vdividecursor.gif" then copy img "vdividecursor.gif" of stack "altLayout" to the topStack hide img "vdividecursor.gif" end if if there is not an img "verbar.jpg" then copy img "verbar.jpg" of stack "altLayout" to the topStack hide img "verbar.jpg" end if copy btn "vertDivider" of stack "altLayout" to the topStack set the icon of last btn to the id of img "verbar.jpg" set the vis of last btn to true if there is a btn "vertDivider" of the topStack then set the name of last btn to makeName("vertDivider") end if end mouseUp baltMsg Don't forget to set the altLeftObjects and altRightObjects of the vertical divider. Put each object on a separate line with item 2 of the line indicating the behavior of the object: M for Move and S for Scale Also, see the script for the constant margin settings.altMsg2SYou can only add a divider when the stack is set to the minWidth and the minHeight! cREVGeneral revUniqueID 1103531431480 breakPoints QRebuild IDlistEp--> all handlers on mouseUp checkStack the short name of the topStack end mouseUp on checkStack pStackName answer information the altMsg of me exit to top --> WALK THRU CONTROL LIST put the altResizeControlList of stack pStackName into tControlList --> CORRECT STACK NAMES put the fileName of stack pStackName into tStackName -- repeat for each line L in tControlList -- put L into tStr -- replace "" with pStackName in tStr -- put tStr & cr after tList -- end repeat put 1 into tLine repeat for each line L in tControlList --> TEST TO SEE IF CONTROL NAME EXISTS if exists(L) then if "altLayoutManager" is among the lines of the customPropertySets of L then set the customPropertySet of L to "altLayoutManager" --> SET THE ALTVIS OF CONTROL PER PLATFORM put the customKeys of L into tKeysList filter tKeysList with "*altVis" if the number of lines in tKeysList > 0 then put pMode & "altVis" into tProp if tProp is among the lines of the customKeys of L then put "put the " & tProp & " of L into tPropValue" into tDo do tDo if tPropValue is false then hide L else show L end if else show L end if end if --> SET THE ALTRECT OF CONTROL PER PLATFORM if "altRect" is among the lines of the customKeys of L then put pMode & "altRect" into tProp put "put the " & tProp & " of L into tPropValue" into tDo do tDo if tPropValue is "" then put the altRect of L into tPropValue end if set the rect of L to tPropValue end if if "altCmd" is among the lines of the customKeys of L then put pMode & "altCmd" into tProp if tProp is among the lines of the customKeys of L then put "put the " & tProp & " of L into tPropValue" into tDo do tDo set the altCmd of L to tPropValue end if end if set the customPropertySet of L to empty end if put line tLine of tControlList & cr after tNewControlList else answer warning "Control not found. Will delete from list control name: " &cr& L with "Exit to Top" or "OK" if it is "exit to top" then exit to top end if end if add 1 to tLine end repeat delete last char of tNewControlList set the altResizeControlList of stack pStackName to tNewControlList -- --> NEED TO CHECK THE RESIZESTACK HANDLER FOR ANY OBJECTS MISSING -- --> FIGURE OUT WHERE THE RESIZESTACK HANDLER IS -- if the altResizeScriptLocation of stack pStackName is "card" then -- put the script of the current card of stack pStackName into tScript -- else -- put the script of stack pStackName into tScript -- end if -- -- set the defaultStack to pStackName -- put 0 into tLineNum -- -- --> WALK THRU THE REIZESTACK SCRIPT AND CHECK FOR OBJECTS -- repeat -- put lineoffset("altSetRect",tScript,tLineNum) into tLineNumInc -- if tLineNumInc = 0 then exit repeat -- add tLineNumInc to tLineNum -- put line tLineNum of tScript into tScriptLine -- if word 1 of tScriptLine is not "altSetRect" then next repeat -- put offset("altSetRect (",tScriptLine) into tStart -- put offset("), (",tScriptLine) into tEnd -- put char tStart + 12 to tEnd - 1 of tScriptLine into tObj -- put "put " && tObj && "into tObj" into tDo -- try -- do tDo -- catch t -- --> THE OBJECT DOES NOT EXIST -- put tLineNum & "," after tScriptLinesToDelete -- end try -- end repeat -- delete last char of tScriptLinesToDelete -- -- --> DELETE SCRIPT LINES -- repeat with x = the number of items in tScriptLinesToDelete down to 1 -- delete line (item x of tScriptLinesToDelete) of tScript -- end repeat -- -- if the altResizeScriptLocation of stack pStackName is "card" then -- set the script of the current card of stack pStackName to tScript -- else -- set the script of stack pStackName to tScript -- end if set the defaultStack to "altLayout" send mouseUp to grp "LayoutMode" end checkStack mKRaltMsg

To rebuild all ID's, just select a control on the topStack and press the

Set Layout Props

button. This will step through each control on each card and rebuild the altResizeControlList for the topStack.

0checks control list and deletes those not found cConsLastpropHandlerScroll1 varCheckingfalse ScriptChunkchar 582 to 581 of field 93 HandlerNamecheckStack command cREVGeneral revUniqueID 1134806628116 breakPoints TClear ALL Object PropsEpdon mouseUp put the topStack into tStack if tStack contains "altLayout" then beep answer "Cannot Remove from AltLayout!" exit to top end if answer question "Delete all altLayout custom props from topStack?" with "No" or "Yes" if it is "No" then exit mouseUp repeat with x = 1 to the number of cds in stack the topStack repeat with y = 1 to the number of controls in cd x of stack the topStack if "altLayoutManager" is among the lines of the customPropertySets of control y of cd x of stack the topstack then get the customPropertySets of control y of cd x of stack the topstack set the wholeMatches to true delete line lineOffset("altLayoutManager",it) of it set the customPropertySets of control y of cd x of stack the topstack to it end if end repeat end repeat end mouseUp  cREVGeneral revUniqueID 1151107040915 .gHelpiTF cREVGeneral revUniqueID 1081742510053 ,Field 2)`X> cREVTable currentview

Layout Manager

by: Altuit, Inc.

Now with support for multiple card stacks!

Use Layout Manager to handle resizable stacks and control layouts for cross-platform applications. Here's how it works.

With Layout Manager, you can create different layouts with controls differently sized and with different behaviors for up to 3 different platforms. Layout Manager auto-generates resizeStack scripts, which users may modify at a later time if they wish.

Typically, you should first layout the controls on a stack which is the minimum width and height you want the stack to be. Then, use the Set MinWidth and Set MinHeight commands on the Stack tab. Now you're ready to set the resizer properties for those controls you wish to be 'dynamic.'

You'll need to add the altLayoutLib library handlers to your project. This is done by clicking the add altLayout library button in the Stack tab. You will be then prompted to automatically insert a preOpenStack script. If your stack has only a single card which people will be resizing, then put the script in the card script, else put it in the stack script. Layout Manager will also put some library routines in your stack script as well.

Please note: Layout Manager puts it's own 'on preOpenStack' handler at the top of the card/stack script. If you already have an 'on preOpenStack' handler then you'll need to manually copy the 'start using stack "altLayoutLib"' command into it.

Next, choose the Control tab, and choose the platform radio button you're currently wanting to set the resizer properties for. Use Mac OSX, or Win XP(and all Win32), or Other (for Linux, or Mac OS9). Now, press the arrow button to go to 'Pointer' mode. You can now resize controls and set their behaviors. Be sure and click the Set Layout Props button when you are finished editing a single control.

Each time you click the Set Layout Props button, Layout Manager builds it's own 'on resizeStack' handler at the top of the card/stack script you previously designated when adding the library. If you don't want Layout Manager to replace it's own scripts, then edit the comments next to the resizeStack handler and then the next time Layout Manager builds a resizeStack script it will insert it above your custom version. You only then need to cut/paste the auto-generated scripts into your own 'on resizeStack' handler.

One of the added benefits of taking this approach, is the developer has full control over the resizeStack handler and can modify it to suit special situations.

Possible behaviors:

Move Right - moves a control right when the window is enlarged. Good for buttons.

Move Down - moves a control down when the window is enlarged. Good for buttons.

Scale Right - expands a control right when the window is enlarged. Good for fields.

Scale Down - expands a control downward when the window is enlarged. Good for fields.

Center Width - centers a control horizontally on the window. Good for logos at the top of a window.

Center Height - centers a control vertically on the window.

Notes: Layout Manager automatically saves a customPropSet called "altLayoutManager" which is used on startup to set values for the particular platform the app is running on.

You can choose to add a WinXP resize control which will only show on Windows computers. This emulates a standard control.

You can choose to add a vertical or horizontal divider control which will also honor and work with the altLayout handlers. Here's how it works. Add the divider you wish to use, then go into the dividers custom props and edit the relative controls you wish to move (M) or scale (S). For instance, if you have added a vertical divider then you will have two properties in it to fill out: altLeftObjects and altRightObjects. Each property consists of a list of objects (1 per line) with each line having two items, the first is the object name (e.g. fld "test") and the second is the behavior: Move (M) or Scale (S). So the altLeftObjects property may look like:

fld "comments",S

btn "OK",M

It's important to set limits for the dividers and these can be set using the custom properties for each divider control. The properties for the vertical divider are:

altLeftStop = the left margin where resizing stops

altRightStop = the right margin where resizing stops

And the properties for the horizontal divider are:

altTopStop = the top margin where resizing stops

altBotStop = the bottom margin where resizing stops

Sometimes the dividers can move objects in such a way that when resizing down the stack, the objects move off of the stack. In these cases it will automaticaly reset the controls to their default position.

It is important to set up the correct behaviors of each of the controls in order to work properly with the dividers. Only the last row of controls should be set to scale down and the last set of columns should be set to scale right (see control tab). This will ensure smooth operation.

Note: Thanks Ken Ray for script help.

 cREVGeneral revUniqueID 1081742502515  Layout Manager  by: Altuit, Inc. +Now with support for multiple card stacks! xUse Layout Manager to handle resizable stacks and control layouts for cross-platform applications. Here's how it works. With Layout Manager, you can create different layouts with controls differently sized and with different behaviors for up to 3 different platforms. Layout Manager auto-generates resizeStack scripts, which users may modify at a later time if they wish. Typically, you should first layout the controls on a stack which is the minimum width and height you want the stack to be. Then, use the Set MinWidth and Set MinHeight commands on the Stack tab. Now you're ready to set the resizer properties for those controls you wish to be 'dynamic.'      S    You'll need to add the altLayoutLib library handlers to your project. This is done by clicking the add altLayout library button in the Stack tab.   #@ c x ePlease note: Layout Manager puts it's own 'on preOpenStack' handler at the top of the stack script. + + :* Next, choose the Control tab, and choose the platform radio button you're currently wanting to set the resizer properties for. Use Mac OSX, or Win XP(and all Win32), or Other (for Linux, or Mac OS9). Now, press the arrow button to go to 'Pointer' mode. You can now resize controls and set their behaviors. Be sure and click the Set Layout Props button when you are finished editing a single control.   g      )  e H X7  Each time you click the Set Layout Props button, Layout Manager rebuilds the complete Control Management list. So, if you rename or delete some objects, then select a control you already know to have altLayout props, and just press the Set Layout Props button again.   (   One of the added benefits of taking this approach, is the developer has full control over the resizeStack handler and can modify it to suit special situations. Possible behaviors: RMove Right - moves a control right when the window is enlarged. Good for buttons.   G PMove Down - moves a control down when the window is enlarged. Good for buttons.   F TScale Right - expands a control right when the window is enlarged. Good for fields.   H VScale Down - expands a control downward when the window is enlarged. Good for fields.   K dCenter Width - centers a control horizontally on the window. Good for logos at the top of a window.   W =Center Height - centers a control vertically on the window.   / Notes: Layout Manager automatically saves a customPropSet called "altLayoutManager" which is used on startup to set values for the particular platform the app is running on. B B R[ zYou can choose to add a WinXP resize control which will only show on Windows computers. This emulates a standard control. You can choose to add a vertical or horizontal divider control which will also honor and work with the altLayout handlers. Here's how it works. Add the divider you wish to use, then go into the dividers custom props and edit the relative controls you wish to move (M) or scale (S). For instance, if you have added a vertical divider then you will have two properties in it to fill out: altLeftObjects and altRightObjects. Each property consists of a list of objects (1 per line) with each line having two items, the first is the object name (e.g. fld "test") and the second is the behavior: Move (M) or Scale (S). So the altLeftObjects property may look like: fld "comments",S btn "OK",M It's important to set limits for the dividers and these can be set using the custom properties for each divider control. The properties for the vertical divider are: 3altLeftStop = the left margin where resizing stops 5altRightStop = the right margin where resizing stops 3And the properties for the horizontal divider are: 1altTopStop = the top margin where resizing stops 5altBotStop = the bottom margin where resizing stops Sometimes the dividers can move objects in such a way that when resizing down the stack, the objects move off of the stack. In these cases it will automaticaly reset the controls to their default position. It is important to set up the correct behaviors of each of the controls in order to work properly with the dividers. Only the last row of controls should be set to scale down and the last set of columns should be set to scale right (see control tab). This will ensure smooth operation. &Note: Thanks Ken Ray for script help.  - `@AY1 pin_grey >/control has no Layout props PNG  IHDRw=+tEXtCreation TimeFr 19 Dez 2003 20:23:37 +01003DtIME 7>C pHYs B4gAMA adIDATxڭUKhQ$մ҄łJ".D7q Rpٕ\/.\(h(lj b$Ҵ1mt2L23^5DFüys.0.v,C(bW;+lD>>>~:H\7my]jolb8L]+@XgbIDZm#˶E]׏u} p*9\R˖$5` :iI--ݲE{‡pYE9%![Afc"òݏ꨸kzۖ$dr9RE n!bA8$}CEQJr[  !P 4McH5Crbs^QM>ye,$#>@Ƙ=Xr9'ȕPFFFM='ﺈO[eŒf2@2EsEKz~Rk0Xb"\l^r֭I4? PaN}}Wi#wmL:Mo>'w|~266w ,SU {vGg{ҩ~HL&d` ZFP(t&4L[5ϪX&8v;gffX#caiYSS ϟF?U Q/$?J<3lMyXTNκ_"f4b M 0+q%Nq6 t.r6W8] Wcά'a ą65QgIENDB` cREVGeneral revUniqueID 10817445389542 pin_blue>/control has Layout props9PNG  IHDRw=+tEXtCreation TimeFr 19 Dez 2003 20:23:37 +01003DtIME 7>C pHYs B4gAMA aIDATxڭUMhe~ٙnҤٍm*B"^z)I=zPғ޼</"AZRi4 ͦmm풝M;3u@ay޿sk^k/|bl06^1oR21Nk(o;n)W~H[^D7٩g^;c#dUԄUSؚNGs }oO$Lየ{j6C; fʬujhe2ky1kxV"@PEH!0@6H6~y#_N ;Tkǜ hPF 10:YrYKly!#tjR¤d"2!00lwdlIDixG r/gZ҈"C*&ʭI2p*˼~/з·>jߍMԀa&#f(tWn[yE)^S'4)Um歝 z# G@~)=?~kh2PX._߯?CмW7{$ F<|0;a~y|v^ix"󭎰׮{woQc޸|QU[K;.=Q_$I^ZZmEӧK;Q1;:wc VTb+++,ڦ׿V GuW@rbqZ"rFZ-](䅼br t]&m?PN(FtaHnR4v _^ZQ4@u#AΏ#0ˑĮyc4wqg8K̃IENDB` cREVGeneral revUniqueID 10817445628617altDragbC6--> all handlers 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, the height of this stack unlock screen end if end mouseMove on mouseEnter if the platform is not "MacOS" then lock cursor set cursor to the ID of img "resizeCursor" of cd 1 end if end mouseEnter on mouseLeave put false into lMoving unlock cursor end mouseLeave @"28 cConsLastpropHandlerScroll420 varCheckingfalse ScriptChunkchar 1444 to 1479 of field 93 HandlerNamemouseEnter message cREVGeneral revUniqueID 1081801386154 breakPoints 8 drag.gif@4 XGIF89a !, H*P٠5] uD; cREVGeneral revUniqueID 10818013861559 resizeCursorD2200308@ABDJUb@U)!A6><84"@">A ~|P~ wcw??  cREVGeneral revUniqueID 1081801585194; altLayoutLibEp3< --> ALTLAYOUT SCRIPTS --> DO NOT TOUCH UNLESS YOU KNOW WHAT YOU ARE DOING local lAltChecking,lAltOldWH,lPlatform local lHasDividerBeenUsed on preOpenStack --> AUTO-GENERATED BY altLayout Manager initAltLayoutLib end preOpenStack on preOpenCard --> COMMENT THIS SCRIPT OUT FOR SINGLE CARD STACKS --> THIS SCRIPT WILL AUTO LAYOUT FOR EACH CARD BEFORE OPENING --> THIS WAY ONLY THE CONTROLS ON A GIVEN CARD ARE MANANAGED AT ONE TIME --> RESULTING IN MUCH FASTER PERFORMANCE --> IF YOU HAVE A preOpenCard SCRIPT IN YOUR CARD, THEN BE SURE AND PASS IT --> EDIT THIS SCRIPT HOW YOU LIKE put the width of this stack into pW put the height of this stack into pH send "resizeStack pW,pH,pW,pH" to this card in 50 millisecs end preOpenCard on resizeStack pNewW,pNewH,pOldW,pOldH --> AUTO-GENERATED BY altLayout Manager --> CAPTURE FIRST pOldW,pOldH if lAltOldWH is empty then put pOldW,pOldH into lAltOldWH get the priv_ResizeControlList of this stack repeat for each line L in it if exists(L) then put the altLayoutManager["altCard"] of L into tCard if word 1 of tCard is not "card" then --> IT IS A CONTROL WHICH IS PART OF A BACKGROUND --> IS THE BACKGROUND ON THIS CD? if tCard is among the lines of the groupIDs of this card then altSetRect L,(the altLayoutManager["altCmd"] of L) end if else if tCard = the name of this card then altSetRect L,(the altLayoutManager["altCmd"] of L) end if end if end if end repeat if lAltChecking <> true then CheckMouseState end if pass resizeStack end resizeStack --> END AUTO-GENERATED BY altLayout Manager function checkHasDividerBeenUsed return lHasDividerBeenUsed end checkHasDividerBeenUsed() on setHasDividerBeenUsed pFlag put pFlag into lHasDividerBeenUsed end setHasDividerBeenUsed on initAltLayoutLib switch the platform case "MacOS" put "MacOSX" into lPlatform altSetLayoutMode "MacOSX" break case "Win32" put "WinXP" into lPlatform altSetLayoutMode "WinXP" break default put "Other" into lPlatform altSetLayoutMode "Other" break end switch put false into lHasDividerBeenUsed end initAltLayoutLib on altSetLayoutMode pMode put the short name of this stack into tTheStackName if tTheStackName is "LayoutManager" then answer "Can't edit the Layout Manager stack!" exit to top end if replace space with "" in pMode altInitStack pMode altInitControls pMode end altSetLayoutMode on altInitStack pMode put the short name of this stack into tTheStackName if pMode is "WinXP" then if there is a btn "altDrag" then show btn "altDrag" end if else if there is a btn "altDrag" then hide btn "altDrag" end if end if --> RESIZE STACK put the rect of this stack into tRect --> MINWIDTH put pMode & "altMinWidth" into tProp if "altMinWidth" is among the lines of the customKeys of this stack then if tProp is among the lines of the customKeys of this stack then put "put the " & tProp & " of this stack into tPropValue" into tDo do tDo if isNumber(tPropValue) and tPropValue > 32 then set the altMinWidth of this stack to tPropValue end if end if set the minWidth of this stack to the altMinWidth of this stack end if --> MINHEIGHT put pMode & "altMinHeight" into tProp if "altMinHeight" is among the lines of the customKeys of this stack then if tProp is among the lines of the customKeys of this stack then put "put the " & tProp & " of stack " & quote & tTheStackName & quote & " into tPropValue" into tDo do tDo if isNumber(tPropValue) and tPropValue > 32 then set the altMinHeight of this stack to tPropValue end if end if set the minHeight of this stack to the altMinHeight of this stack #set the height of this stack to the altMinHeight of this stack end if --> MAXWIDTH put pMode & "altMaxWidth" into tProp if "altMaxWidth" is among the lines of the customKeys of this stack then if tProp is among the lines of the customKeys of this stack then put "put the " & tProp & " of stack " & quote & tTheStackName & quote & " into tPropValue" into tDo do tDo if isNumber(tPropValue) and tPropValue > 32 then set the altMaxWidth of this stack to tPropValue end if end if set the maxWidth of this stack to the altMaxWidth of this stack #set the width of this stack to the altMaxWidth of this stack end if --> MAXHEIGHT put pMode & "altMaxHeight" into tProp if "altMaxHeight" is among the lines of the customKeys of this stack then if tProp is among the lines of the customKeys of this stack then put "put the " & tProp & " of stack " & quote & tTheStackName & quote & " into tPropValue" into tDo do tDo if isNumber(tPropValue) and tPropValue > 32 then set the altMaxHeight of this stack to tPropValue end if end if set the maxHeight of this stack to the altMaxHeight of this stack #set the height of this stack to the altMaxHeight of this stack end if --> SET THE STACK RECT USING MIN NUMBERS set the rect of this stack to \ item 1 of tRect, \ item 2 of tRect, \ item 1 of tRect + the minWidth of this stack, \ item 2 of tRect + the minHeight of this stack end altInitStack on altInitControls pMode --> SET CONTROL RECTS AND BEHAVIOR put the short name of this stack into tStackName put the environment into tEnvironment --> NEVER WALK THRU CONTROLS...JUST USE CONTROL LIST if tEnvironment is "development" then --> WALK THRU CONTROLS IS SLOWER BUT MORE ACCURATE makeControlsList end if --> WALK THRU CONTROL LIST AND SET LOC put the altResizeControlList of this stack into tControlList --> CORRECT STACK NAMES put the effective fileName of this stack into tStackName replace "" with tStackName in tControlList set the priv_ResizeControlList of stack tStackName to tControlList repeat for each line L in tControlList if exists(L) then put the altLayoutManager["altCard"] of L into tCard if word 1 of tCard is not "card" then --> IT IS A CONTROL WHICH IS PART OF A BACKGROUND --> IS THE BACKGROUND ON THIS CD? if tCard is among the lines of the groupIDs of this card then altInitRect L,pMode end if else if tCard = the name of this card then altInitRect L,pMode end if end if end if end repeat end altInitControls on makeControlsList put the short name of me into tTopStack set the wholeMatches to true put the long ID of the current card of stack tTopStack into tCurrCdID lock messages repeat with x = 1 to the number of cds in stack tTopStack go cd x put "" into tDupeNamesList repeat with y = 1 to the number of controls in the current card of stack tTopStack put the long id of control y of cd x of stack tTopStack into tObjID if "altLayoutManager" is among the lines of the customPropertySets of tObjID then --> WE NEED TO CHECK FOR DUPLICATE NAMES AND NOTIFY USER IF THERE ARE SOME put the name of control y into tTestForDupe if lineOffset(tTestForDupe,tDupeNamesList) is not 0 then --> A CONTROL WITH THIS NAME EXISTS answer warning "You have two controls on cd: " &y& " with the same name:" & cr &\ tTestForDupe &cr&cr& "Please rename one!" go tCurrCdID unlock messages exit to top end if put the name of control y of cd x of stack tTopStack & cr after tDupeNamesList --> CHECK TO SEE IF THIS CONTROL IS IN A BG GRP #put the long id of control y of cd x of stack tTopStack into tObjID if tObjID contains "group" then --> CHECK TO SEE IF IT IS BG GRP put the backgroundIDs of stack tTopStack into tGrpID # of cd x of stack tTopSTack into tGrpID repeat for each line U in tGrpID put "group id " & U into tID if tID is in tObjID then --> IT IS A BACKGROUND GRP CONTROL SO DELETE THE CARD/STACK REF put offset(" of card",tObjID) into tStart delete char tStart to the length of tObjID of tObjID if tObjID is among the lines of tControlList then put "" into tObjID end if exit repeat end if end repeat end if --> TRACK EACH CONTROL SO THAT WE CAN LATER SET A PROPERTY FOR THE CONTROLLIST if tObjID is not "" then put tObjID & cr after tControlList end if end repeat end repeat delete last char of tControlList go tCurrCdID unlock messages --> SAVE THE CONTROL LIST FOR PARSING ON STARTUP --> THIS WAY YOU DON'T HAVE TO DO THRU EACH OBJECT ON EACH CD, JUST CHECK THIS LIST --> ALSO NEED TO REPLACE THE ABSOLUTE STACK NAME BECAUSE IT MAY CHANGE IN THE STANDALONE --> CHANGED TO MAKE PERFORMANCE FASTER FOR MULTIPLE CARD STACKS set itemDel to quote put empty into tList repeat for each line L in tControlList put L into tStr if tStr contains " stack" then put item -1 of L into tReplaceStr replace tReplaceStr with "" in tStr end if put tStr & cr after tList end repeat if tList <> "" then delete last char of tList set the altResizeControlList of stack tTopStack to tList set the priv_ResizeControlList of stack tTopStack to tControlList end makeControlsList on altInitRect pObj,pPlatform put the altLayoutManager["WinXPaltRect"] of pObj into tRect if tRect is "" then put the altLayoutManager["MacOSXaltRect"] of pObj into tRect if tRect is "" then put the altLayoutManager["OtheraltRect"] of pObj into tRect switch pPlatform case "MacOSX" get the altLayoutManager["MacOSXaltRect"] of pObj if it is not empty then put it into tRect break case "Other" get the altLayoutManager["OtheraltRect"] of pObj if it is not empty then put it into tRect break end switch set the rect of pObj to tRect end altInitRect on altSetRect pObj,pCommands put long id of this card into pRelativeTo -- ANOTHER OBJECT PASSED AS LONG ID put the left of pRelativeTo into tLeft put the top of pRelativeTo into tTop put the right of pRelativeTo into tRight put the bottom of pRelativeTo into tBot put the rect of pObj into tRect put the rect of pObj into tRectNew replace comma with cr in pCommands replace ":" with comma in pCommands repeat for each line tCmd in pCommands switch (item 1 of tCmd) case "SX" -->SCALES RIGHT put (tRight + (item 2 of tCmd)) into item 3 of tRectNew break case "SY" -->SCALES DOWN put (tBot + (item 2 of tCmd)) into item 4 of tRectNew break case "MX" --> MOVES RIGHT put (tRight + (item 2 of tCmd)) into tRightNew put tRightNew - (item 3 of tRect - item 1 of tRect) into item 1 of tRectNew put tRightNew into item 3 of tRectNew break case "MY" --> MOVES DOWN put (tBot + (item 2 of tCmd)) into tBotNew --item 4 of tRectNew put tBotNew - (item 4 of tRect - item 2 of tRect) into item 2 of tRectNew put tBotNew into item 4 of tRectNew break case "CX" --> CENTERS ALONG THE X AXIS (NO SCALE) put (item 3 of tRect - item 1 of tRect) into tWidth put round((tRight/2) - (tWidth/2)) + item 2 of tCmd into tLeftNew put tLeftNew + tWidth into item 3 of tRectNew put tLeftNew into item 1 of tRectNew break case "CY" --> CENTERS ALONG THE Y AXIS (NO SCALE) put (item 4 of tRect - item 2 of tRect) into tHeight put round((tBot/2) - (tHeight/2)) + item 2 of tCmd into tTopNew put tTopNew + tHeight into item 4 of tRectNew put tTopNew into item 2 of tRectNew break end switch end repeat set the rect of pObj to tRectNew end altSetRect on doneResizing put false into lAltChecking put item 1 of lAltOldWH into tOldWidth put item 2 of lAltOldWH into tOldHeight put the rect of this stack into tRect put the width of this stack into tWidth put the height of this stack into tHeight if tOldHeight > tHeight or tOldWidth > tWidth then if checkHasDividerBeenUsed() is true then altInitControls lPlatform setHasDividerBeenUsed false put the width of this stack into pW put the height of this stack into pH send "resizeStack pW,pH,pW,pH" to this cd in 50 millisecs end if end if put "" into lAltOldWH end doneResizing on CheckMouseState put true into lAltChecking if the mouse is up then doneResizing else if "CheckMouseState" is not among the items of the pendingMessages then send CheckMouseState to me in 10 milliseconds end if end if end CheckMouseState --> END ALTLAYOUT SCRIPTS 0Fu cConsLastHandlerScroll2109 varCheckingfalse ScriptChunkchar 6662 to 6661 of field 93 HandlerNamealtSetLayoutMode command cREVGeneralscripteditorvscroll3951 revUniqueID 1087630707477 breakPoints Fhdividecursor.gifD"S201582P `   `0P cREVGeneral revUniqueID 1103531700492Gvdividecursor.gifDCVK=mͳͳm=C@@@@H2Lz^2LH@@@@H?? cREVGeneral revUniqueID 1103531700493H vertDividerbBW --> VERTICAL SCROLL BAR local lMoving,lYloc,lLeftStop,lRightStop on mouseDown setHasDividerBeenUsed true put true into lMoving put item 2 of the loc of me into lYloc --> LEFT OBJECTS put the altLeftObjects of me into tList repeat for each line L in tList put item 1 of L into tObj put the left of me - the right of tObj into tOffset put the rect of tObj &","& tOffset & cr after tObjRects end repeat delete last char of tObjRects set the priv_LeftObjRects of me to tObjRects put the altRightObjects of me into tList put "" into tObjRects repeat for each line L in tList put item 1 of L into tObj put the left of tObj - the right of me into tOffset put the rect of tObj &","& tOffset & cr after tObjRects end repeat delete last char of tObjRects set the priv_RightObjRects of me to tObjRects put the altLeftStop of me into lLeftStop put the altRightStop of me into lRightStop end mouseDown on mouseUp mouseRelease end mouseUp on mouseRelease updateFldProps put false into lMoving unlock Cursor end mouseRelease on mouseMove x,y put min(max(x,lLeftStop),the width of this cd - lRightStop) into x if lMoving is true then lock screen set the loc of me to x,lYloc --> DO LEFT OBJECTS put the altLeftObjects of me into tObjList put the priv_LeftObjRects of me into tRectList repeat with x =1 to the number of lines in tObjList put item 1 of line x of tObjList into tObj put item 2 of line x of tObjList into tBehavior put line x of tRectList into tRect put item 5 of tRect into tOffset switch tBehavior case "S" -->SCALE set the rect of tObj to \ item 1 of tRect, \ item 2 of tRect, \ the left of me-tOffset, \ item 4 of tRect break case "M" -->MOVE put item 3 of tRect - item 1 of tRect into tWidth set the rect of tObj to \ the left of me-tOffset-tWidth, \ item 2 of tRect, \ the left of me-tOffset, \ item 4 of tRect break end switch end repeat --> DO RIGHT OBJECTS put the altRightObjects of me into tObjList put the priv_RightObjRects of me into tRectList repeat with x =1 to the number of lines in tObjList put item 1 of line x of tObjList into tObj put item 2 of line x of tObjList into tBehavior put line x of tRectList into tRect put item 5 of tRect into tOffset switch tBehavior case "S" -->SCALE set the rect of tObj to \ the right of me + tOffset, \ item 2 of tRect, \ item 3 of tRect, \ item 4 of tRect break case "M" -->MOVE put item 3 of tRect - item 1 of tRect into tWidth set the rect of tObj to \ the right of me + tOffset, \ item 2 of tRect, \ the right of me + tWidth + tOffset, \ item 4 of tRect break end switch end repeat unlock screen end if end mouseMove on mouseEnter lock cursor set cursor to the id of img "vDivideCursor.gif" end mouseEnter on mouseLeave put false into lMoving unlock cursor end mouseLeave on updateFldProps end updateFldProps @[)altRightObjectsXfld "Session",S fld "lbQA",M img "sessionImg",M fld "sessionTxt",S grp "sessionImgGrp",M altLeftStop30priv_RightObjRects^402,116,1166,266,1 393,98,465,115,-8 402,275,508,382,1 511,275,1166,763,110 400,383,462,409,-1 altRightStop30altLeftObjectsFfld "outline",S btn "Add This",M fld "topicTxt",S btn "vertDivider2",Mpriv_LeftObjRectsI19,116,391,291,1 301,769,375,805,17 128,300,391,763,1 402,267,444,274,-52 cREVGeneral revUniqueID 1103532110034 I horizDividerbBW --> HORIZONTAL SCROLL DIVIDER local lMoving,lXloc,lTopStop,lBotStop on mouseDown setHasDividerBeenUsed true put true into lMoving put item 1 of the loc of me into lXloc --> TOP OBJECTS put the altTopObjects of me into tList repeat for each line L in tList put item 1 of L into tObj put the top of me - the bottom of tObj into tOffset put the rect of tObj &","& tOffset & cr after tObjRects end repeat delete last char of tObjRects set the priv_TopObjRects of me to tObjRects put the altBotObjects of me into tList put "" into tObjRects repeat for each line L in tList put item 1 of L into tObj put the top of tObj - the bottom of me into tOffset put the rect of tObj &","& tOffset & cr after tObjRects end repeat delete last char of tObjRects set the priv_BotObjRects of me to tObjRects put the altTopStop of me into lTopStop put the altBotStop of me into lBotStop end mouseDown on mouseUp mouseRelease end mouseUp on mouseRelease updateFldProps put false into lMoving unlock Cursor end mouseRelease on mouseMove x,y #put the height of this cd -y put min(max(y,lTopStop),the height of this cd - lBotStop) into y if lMoving is true then lock screen set the loc of me to lXloc,y --> DO TOP OBJECTS put the altTopObjects of me into tObjList put the priv_TopObjRects of me into tRectList repeat with x =1 to the number of lines in tObjList put item 1 of line x of tObjList into tObj put item 2 of line x of tObjList into tBehavior put line x of tRectList into tRect put item 5 of tRect into tOffset switch tBehavior case "S" -->SCALE set the rect of tObj to \ item 1 of tRect, \ item 2 of tRect, \ item 3 of tRect, \ the top of me-tOffset break case "M" -->MOVE put item 4 of tRect - item 2 of tRect into tHeight set the rect of tObj to \ item 1 of tRect, \ the top of me - tOffset - tHeight, \ item 3 of tRect, \ the top of me - tOffset break end switch end repeat --> DO BOTTOM OBJECTS put the altBotObjects of me into tObjList put the priv_BotObjRects of me into tRectList repeat with x =1 to the number of lines in tObjList put item 1 of line x of tObjList into tObj put item 2 of line x of tObjList into tBehavior put line x of tRectList into tRect put item 5 of tRect into tOffset switch tBehavior case "S" -->SCALE set the rect of tObj to \ item 1 of tRect, \ the bottom of me + tOffset, \ item 3 of tRect, \ item 4 of tRect break case "M" -->MOVE put item 4 of tRect - item 2 of tRect into tHeight set the rect of tObj to \ item 1 of tRect, \ the bottom of me + tOffset, \ item 3 of tRect, \ the bottom of me + tHeight + tOffset break end switch end repeat unlock screen end if end mouseMove on mouseEnter lock cursor set cursor to the id of img "hDivideCursor.gif" end mouseEnter on mouseLeave put false into lMoving unlock cursor end mouseLeave on updateFldProps end updateFldProps @5j/altBotObjects7fld "topicTxt",S btn "showModuleImg",M img "topicImg",Mpriv_BotObjRects4128,275,391,383,1 22,387,40,405,113 19,275,125,382,1 altTopStop30 altBotStop30altTopObjectsfld "outline",Spriv_TopObjRects19,116,391,266,1 cREVGeneral revUniqueID 1103532110035 L horbar.jpg@5s/JFIFddDuckydAdobed/y "!1QB#1!A"BQq2r# ?nꧫsyx-5&Fie]p~t&~8Bd*fzSq<ːx[27/IWe{ Q,2u_n:OW4y[\;eɖ5|y9%F?ou# g00EBAv0=N6Z,"H`)CP*ԝuo h7NH Ug=jS5EK|>7kU۩j>U)5LDFaQN㪾m|- muN E݀Jȷ(#Db>isG\o&(IWE4bzzMx`:J+7O~ާƭ 厩'X\T-Ӱ"J4۾pҐa[s}Q*zl1!`?JW}w&ᯣXC!pF 􄍓˭S۲e>WWB mO#umQ0P"j-ȣl2]C!˧4>qyu{vUY}b/BS6zշqDRghC ,|:W\"C>6ʍu {.#TӏBF֊j)Ue>WWB mO#WVJ /R+̱]r܊; p*52|!SN? 'Z)eUxf)]^B D->l][wE*6v0H2ìeur(41l Pgr0M8@O$l^]hݕV_Aᘥuy )<>umQ0P"S * cREVGeneral revUniqueID 1103535176071RUpdateE --> all handlers on mouseUp answer question "This will check the server for updates to this stack." &cr& \ "Any changes you have made to this stack will be lost! Continue?" with "Cancel" or "OK" if it is "Cancel" then exit to top checkForPluginUpdate end mouseUp on checkForPluginUpdate get altCheckInternetConnect() put the altVers of image "altPlug.png" into tVers put the altUpdateURL of img "altPlug.png" into tURL put URL tURL into tData put getTagData(tData,"Version") into tVers2 if tVers2 <> tVers then answer information "There is an update to this stack. Do you wish to retrieve it?" with "Cancel" or "OK" if it is "Cancel" then exit checkForPluginUpdate end if --> DOWNLOAD NEW STACK put the filename of this stack into tPluginPath put getTagData(tData,"UpdateURL") into tURL put "Downloading file, please wait..." put URL tURL into tBinData put the result into tResult if tResult is not "" then answer information "Problem downloading stack." &cr&cr& tResult altStatus "" exit to top end if topLevel this stack if char -3 to -1 of tURL is ".gz" then --> NEED TO UNCOMPRESS put "Decompressing Stack..." put decompress(tBinData) into tBinData end if put tBinData into URL ("binfile:" & tPluginPath) revert put "Stack updated!" into msg else answer information "You are currently using the latest version of this stack" end if end checkForPluginUpdate function altCheckInternetConnect --> CHECK FOR INTERNET CONNECTION TO EXTERNALS SERVER put "Checking for internet connection..." get URL "http://www.gadgetplugins.com/RevAccessTest.txt" put the result into tResult put "" if line 1 of it is not "GOOD" or tResult is not empty then answer warning "Cannot connect with the Altuit Externals Server: Error" &cr& tResult exit to top else return true end if end altCheckInternetConnect function getTagData theTagData,theTagName filter theTagData with "<" & theTagName & ">*" replace "<" & theTagName & ">" with "" in theTagData replace " " with "" in theTagData replace "" with "" in theTagData replace "|" with tab in theTagData replace "\" with return in theTagData replace "/***---***/" with "" in theTagData replace " " with "" in theTagData return theTagData end getTagData  (  cConsLastHandlerScroll260 HandlerNamecheckForPluginUpdate command cREVGeneral revUniqueID 1143143463971 breakPoints