[Interest] Amazon / Classic Mac OS-like menus (Tognazzini and Batson)?

John Lee jjl at pobox.com
Fri May 31 09:40:29 CEST 2013


On Fri, 31 May 2013, Rutledge Shawn wrote:

>
> Den 31 May 2013 kl. 12:32 AM skrev John Lee:
>
>> Hi
>>
>> Has anybody implemented this sort of menu using Qt?
>>
>> http://bjk5.com/post/44698559168/breaking-down-amazons-mega-dropdown
>>
>> The idea is to avoid the problem of child menus that close before the user
>> manages to navigate to them, because their mouse movement is not
>> sufficiently horizontally constrained to avoid moving outside of the
>> vertical extent of the parent menu item.  This is achieved without
>> introducing a delay in closing the child menu, by closing the child menu
>> only if the path of the cursor moves outside of a certain triangular
>> region.
>
>> From the comments on the page, it sounds like it was originally invented
>> by Bruce Tognazzini and Jim Batson in 1986, and used in old versions of
>> Mac OS.  Bruce comments that the technique is "firmly in the public
>> domain", and suggests that the feature was omitted from OS X by accident.
>
> That's a good idea.  The main OS X menubar seems to just have a delay when opening submenus instead.
>
> In what context do you need such a menu?  We are trying to use native menu bars and context menus when possible, so we usually just get the OS behavior (as on the Mac).  But on Linux it might be possible to do it that way.
>

I was intending to implement it in my own code (or better, use somebody 
else's open source implementation...) -- though I'd be glad to see 
explicit support for it added to Qt of course.

It's for a QSystemTrayIcon.  If it worked on Linux that would be good 
enough.  If it worked on Mac too, that might be even better, but not 
required.  I don't recall what behaviour I currently get from 
QSystemTrayIcon on OS X, and of course I can see the amazon-like behaviour 
might not necessarily be seen as a good thing there if it's inconsistent 
with other apps.


John



More information about the Interest mailing list