Inappropriate Interface Behaviour during mouseDown
Igor Couto
igor at pixelmedia.com.au
Sun Nov 17 13:03:00 EST 2002
Hail Revolution Masters!
I have encountered a problem with the way Revolution implements
mouseLeave/mouseEnter messages during mouseDown - well, actually, with
the fact that it does NOT send these messages during mouseDown,
therefore making the interface behave in an inappropriate manner. I'll
try to explain better:
According to the Apple interface guidelines, items on the screen should
give CONSISTENT and APPROPRIATE feedback to the user, guiding the user
navigation and use of the interface, and indicating as clearly as
possible what is happening at every instant.
Therefore, the normal behaviour of buttons or clickable items is
described as follows:
1) The user should have a clear indication that the area they are in is
a clickable area. This is either done by the use of a graphic element
that clearly indicates that the area is clickable, or by changing the
user's cursor when the user enters the clickable area, or by changing
the appearance of the clickable area when the user is over it,
therefore alerting the user that the area is 'hot clickable'
2) When the user presses a mouse button down, for which some action is
programmed to occur, the user should be WARNED/ADVISED that an action
is about to occur. That is why it is recommended that a change in
appearance be implemented in a 'mouseDown' event (therefore alerting
the user), while the actual ACTION itself be implemented in a 'mouseUp'
event. This is to give the user the chance of 'moving away' while the
mouse button is still pressed down, in case it was activated by
accident. This requires that, if the user indeed no longer wants to
carry out the action, once they move AWAY from the clickable area, the
appearance should change BACK to its NORMAL or IDLE mode, indicating
that the user is no longer in 'danger' of triggering the action.
Similarly, if a user presses a mouse button OUTSIDE a clickable area,
and then moves the cursor OVER a clickable area, then the clickable
area should change its appearance, indicating that if the user lets go
of the mouse at that location, an action will trigger.
The problem in implementing this behaviour in Revolution is that while
the mouse is down, Revolution does NOT send mouseEnter/mouseLeave
messages to objects. The 'mouseRelease' message exists, as far as I can
see, precisely because while the mouse is down, if a user moves AWAY
from the clickable area, this movement is not detected until AFTER the
user has RELEASED the mouse. This makes for some
incongruent/inconsistent behaviour. If a user presses down a button,
and then moves away, the button should not remain highlighted once the
cursor moves beyond the button's boundaries. By remaining highlighted,
the button is telling the user that it is STILL armed and about to
trigger an action, which is not correct. The reverse (pressing down
outside the button and then moving onto it) is also true. It SHOULD
trigger an action, because the user is releasing a button INSIDE the
clickable area, but that does not happen in Revolution.
I reported this inconsistency to 'support at runrev.com', but I was
wondering whether:
* Has anyone else noticed this behaviour before, and found a way to
work around it, in order to obtain the desired interface functionality?
* Does anyone know whether this issue will be addressed in version 2.0?
Your comments and suggestions are much appreciated!
Kind Regards,
--
Igor de Oliveira Couto
----------------------------------
info at pixelmedia.com.au
----------------------------------
More information about the use-livecode
mailing list