Thanks for your thoughts Richard.  Couple of points to be made.

I am not clicking or double clicking on a button, I am clicking on the header 
of a datagrid.  Furthermore, I'm looking for right clicks since a left click on 
a datagrid header sorts the datagrid by the clicked column and I want to retain 
that functionality.  

Here's the logic I am trying to implement. A single right click on a column 
heading brings up a modal dialog where the user can enter search criteria for 
the data in that column.  After filtering the data, I append an asterisk to the 
column label to indicate that a filter is in place.  A single right click on a 
column that is already filtered removes the filter for that column and the 
asterisk in its label.  So the right click is an on/off switch for filtering 
data in a specific column.  Then I wanted a way to remove filters on all 
columns and that's where the double right click came in to play and all hell 
broke loose!  

Your thoughts have made me realise I should provide an Undo menu item and 
keystroke equivalent for the removal of all filters.  In fact, as mentioned in 
an earlier post, I agree that the double click is probably not the way to go 
for what I want to do.  

So implementation of all this according to HIG is one thing and I may have made 
a bad choice there, but the mouseDoubleUp message is never sent in my scenario, 
at least my handlers never see it.  I can accept that the first click generates 
a mouseUp message but the second click within the doubleUpInterval should 
generate a mouseDoubleUp shouldn't it?  That's what I consider to be a bug.

Pete Haworth

On Feb 1, 2011, at 12:28 PM, Richard Gaskin wrote:

> Peter Haworth wrote:
> 
> > I have to respectfully disagree that this isn't a bug.  The
> > mouseDoubleUp message never happens in these circumstances,
> > at least in my application, that's the bug.  Even if it did,
> > what's the point of having a mousedoubleup message if I have
> > to handle it by extra code in the mouseUp message?
> 
> I think Jacque put this succinctly:
> 
>    I don't know of any HIG that officially supports
>    double-clicking a button. In fact, it's common
>    to put in scripts explicitly blocking double-clicks
>    from doing anything.
> 
> GUIs are driven by an implied noun-verb interaction model, in which the user 
> selects an object (noun) and applies an action to it (verb).
> 
> Push buttons are commonly verb triggers - that is, they perform an action, 
> usually on some object other than themselves.  The things verb objects act on 
> could be consider nouns.
> 
> Consider these common operations:
> 
> - You select text in a field, then click a "B" button in a toolbar
>  to make its style bold.
> 
> - You select a file object in the Finder, then select File->Open
>  to open it.
> 
> The latter is a good example here, because it reminds us that most people use 
> the shortcut for File->Open, which is to double-click the file object.
> 
> In that case, the verb object is a separate thing, the File->Open menu item.  
> Double-clicking the noun object (the file) is merely a shortcut for 
> triggering the most common action performed on the object.
> 
> Note that single-clicking a file object triggers no action; it's merely a 
> selection.
> 
> You'll see a similar pattern in many dialogs that contain lists with a 
> default button:  you can single-click a list item to select it and then click 
> the default button to apply that action to the selection, or you can 
> double-click the list item to trigger the default button.
> 
> In each of these cases the verb and noun objects are different things, and 
> the single-click merely selects the object but performs no action on it, and 
> a double-click is merely a shortcut to a diffent action control.
> 
> So while it's common to see double-clicks used throughout many UIs, they're 
> almost always a shortcut to a more visible verb trigger, and I can't think of 
> any example in a popular app in which an object that triggers an action on 
> double-click will also trigger a different action with a single-click.
> 
> There may be one, perhaps even two if we search far and wide, but here I 
> would use what I like to call the Brother Guy Threshold:  "Name three". :)
> 
> 
> In your app, the double-click acts as a sort of Undo - from your earlier 
> email:
> 
>   The single mouse click invokes the modal dialog that was the
>   subject of my defaultStack problems.  The double click basically
>   undoes the what the modal dialog logic did.
> 
> Given how frequently users accidentally double-click objects, you could 
> consider a "Reset" or "Undo Changes" button next to the one that invokes the 
> dialog, or perhaps a menu item or some other visible element.
> 
> As the OS X HIG suggests (in User Input/Double-Clicking):
> 
>    Double-clicking is most commonly used as a shortcut for other
>    actions, such as pressing Command-O to open a document or
>    dragging to select a word. Because not everyone is physically
>    able to perform a double click, it should never be the only
>    way to perform an action.
> 
> The ways this could be optimally handled will vary according to the specifics 
> of the app, of course, and it may well be that yours is the rare case where 
> having one push button perform two different actions may be best.
> 
> You're free to submit a bug report on this if you like, but don't be 
> surprised if it gets flagged "Not a bug", since the only way to "fix" this 
> would be to delay processing of all mouse clicks by the doubleClickInterval, 
> and would only benefit the exceptional rare case relying on both messages in 
> a single control.
> 
> For such unusual behaviors it seems reasonable to expect the scripter to 
> craft the unique behavior they want - Craig did a great job on coming through 
> with that so quickly.
> 
> --
> Richard Gaskin
> Fourth World
> LiveCode training and consulting: http://www.fourthworld.com
> Webzine for LiveCode developers: http://www.LiveCodeJournal.com
> LiveCode Journal blog: http://LiveCodejournal.com/blog.irv
> 
> 
> _______________________________________________
> use-livecode mailing list
> use-livecode@lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your subscription 
> preferences:
> http://lists.runrev.com/mailman/listinfo/use-livecode
> 


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

Reply via email to