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