Two questions, auto-scaling

Thomas J McGrath III 3mcgrath at adelphia.net
Mon Nov 10 16:58:33 EST 2003


WHOAA,
Now this is a real reason to revamp the Geometry issue in REV for sure.

Thanks, I will look into this solution and apply it in a not so 
important stack.

Tom

On Monday, November 10, 2003, at 04:48 PM, Jim Hurley wrote:

> What follows is a solution of desperation. I found that the best 
> solution for me on the stack I am currently working on was to just let 
> the user resize the window to fit his or her needs. It was easier than 
> using RR built-in geometry utilities.
>
> This requires scaling everything (all controls) when the stack is 
> resized.
>
> Fields are treated differently. When the fields are scaled, the text 
> may not fit, so for these I scale the font size as well (unless there 
> is a vertical scrollbar in which case I only scale the rect).
>
> Caution: I hesitate to offer this. Use with care. It works for me but 
> I have not tested it widely.
>
> Jim
>
> Place in the stack script:
>
> local scaleX,scaleY
>
> on resizeStack x,y, xold,yold
>   lock screen
>   repeat with i = 1 to the number of cards
>     go to card i
>     doResize x,y,xold,yold
>   end repeat
>   go to recent card
>   unlock screen
> end resizeStack
>
>  on doResize x,y,xold,yold
>   put x/xold into scaleX
>   put y/yold into scaleY
>   doScaling
>   sizeFontToFit
> end doResize
>
> on doScaling
>   repeat with i = 1 to the number of controls
>     put the name of control i into tControl
>     put the rect of  tControl into tRect
>     repeat with j =1 to 4
>       multiply item j of tRect by item oneOrTwo(j) of (scaleX,scaleY)
>     end repeat
>     set the rect of tControl to tRect
>   end repeat
> end doScaling
>
> function oneOrTwo k
>   return 2 - (k mod 2)
> end oneOrTwo
>
> on sizeFontToFit
>   repeat with n = 1 to the number of fields
>     if the vScrollbar of field n is true then next repeat
>     put the width of field n into tWidth
>     put the textFont of field n into tFont
>     put the fontsizes of tFont into tSizeList
>
>     repeat with i = 1 to the number of lines in tSizeList
>       set the textsize of field n to line i of tSizeList
>       if  the formattedwidth of field n > tWidth then exit repeat
>     end repeat
>     set the height of field n to the formattedheight of field n
>   end repeat
> end sizeFontToFit
> _______________________________________________
> use-revolution mailing list
> use-revolution at lists.runrev.com
> http://lists.runrev.com/mailman/listinfo/use-revolution
>
>

Thomas J McGrath III
Advanced Media Group

220 Drake Rd.
Bethel Park, PA 15102
3mcgrath at adelphia.net




More information about the use-livecode mailing list