On Dec 5, 2006, at 9:05 PM, Jan Sælid wrote:

...

What I want to do is to just change the icon according to the state of
onstate property. Should I use a visited icon or a hilited icon? No matter what I turn off or on I seem to get some additional behaviour. Like a border or the traversal border. I’m sorry that I have to bother you with this but my early days of lessons is just hidden under layers of other priorities.




If all the buttons do is signal a state change that will be acted on later, I would put the following script in the group:

   on mouseup
     set the hilite of the target to not (the hilite of the target)
   end mouseup



I would set the hiliteIcon property to get my custom icon. I would set the autohilite of the buttons to false, and just to make sure I would set the hiliteborder and hilitefill of the buttons to false, too.

If I didn't want a focus border (and I never do), I would set the showfocusborder of the buttons AND of the group to false (otherwise, in Windows, the dotted line focus border shows up on the buttons anyway).

If I want rollover behavior, I would use the new hoverIcon property instead of the autoArm and armedIcon property; so I'd set autoArm of the buttons to false, and I would set the armBorder and armFill of the buttons to false too, for good measure.

I'd set the traversalOn of the group and the buttons to true.

I'd avoid the visitedIcon unless you really have a "visited" state you need to convey (i.e. this button has been clicked already but it's not disabled--I guess it's a Unix thing.)


If I need to carry around the state of the buttons (assuming they record states), I'd do something like:

   repeat with N = 1 to the number of buttons of grp "states"
     put the hilite of btn N of grp "states" into \
        tStateArray[the short name of btn N of grp "states"]
   end repeat

...and then later:

   if tStateArray["meaningfulButtonName"] then ....



If it's against your religion to conflate a gui state with a program state, it's still easier and clearer when you avoid elaborate if statements, just to transfer Boolean values; that is, use:

   set the hilite of me to the onstate of me

rather than:

   if the onState of me is true then set the hilite of me to true


HTH,

t


--
Tereza Snyder

   Califex Software, Inc.
   www.califexsoftware.com

--
Tereza Snyder

   Califex Software, Inc.
   www.califexsoftware.com

_______________________________________________
use-revolution mailing list
use-revolution@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution

Reply via email to