Button images script

Jim Hurley jhurley at infostations.com
Mon Feb 17 10:37:01 EST 2003


>  Greg Wills wrote:
>
>
>Thanks Jim,
>
>Your script will be of assistance in the laying out of the stack with
>many icon buttons. I have been playing round with having a very small
>dimensioned sub-stack with a picture on each card. I am only needing
>small pictures at this stage.


Greg,

Here is a utility which I use to deal with buttons in the main stack 
whose image icons are in a substack. It relieves you of the need of 
setting  to set the icon id and sizing the images and/or the buttons 
all in one fell swoop.

1) Put all the images on card 1 of the substack (mySubstack below.) 
Don't worry about size or position, that will be taken care  of 
later. And resizing may distort the proportions. Doesn't matter if 
they overlap.
2) Next go through the main stack (myStack below) and create buttons 
with *the same name as the desired image in the substack* and in the 
desired location on each card. Also adjust the size of the button to 
the desired size of the eventual image. (Actually only the width 
matters. The height will be adjusted to avoid distorting the image 
proportions.)
3) Run setUp below from the main stack. All buttons will be assigned 
icon numbers of the image corresponding to the button name and the 
image in the substack is adjusted to fit within the button. And, as a 
bonus, you get an image border. If you don't want the border just: 
"set the showBorder of button tButtonName to "false." You can also 
set the color and width of the border. You may want to tinker with 
the edge number of ".98" below.
4)  You can add images and button later if necessary and rerun "setUP".
5)  Thanks to members of this list for help in developing this handler.



On setUpRev
   Lock screen
   repeat with i =1 to the number of cards
     set the defaultstack to "myStack
     go to card i
     repeat with j = 1 to the number of buttons
       put the short name of button j into tButtonName
       put the width of button j into theButtonWidth
       set the defaultstack to "mySubstack
       if there is an image tButtonName then
         put the id of image tButtonName into tImageID
         put the formattedWidth of image tButtonName into tImageWidth
         Put the formattedHeight of image tButtonName into tImageHeight
         put tImageHeight/tImageWidth into ratioOfHeightToWidth
         set the width of image tButtonName to theButtonWidth*.98 -- 
Leave an edge
         set the height of image tButtonName to 
theButtonWidth*ratioOfHeightToWidth*.98
       end if
       set the defaultstack to "myStack"
       set the icon of button j to tImageID
       set the height of button tButtonName to 
theButtonWidth*ratioOfHeightToWidth
     end repeat
   end repeat
   unlock screen
end setUpRev


Jim



More information about the use-livecode mailing list