From: Jon G. <jg...@hi...> - 2002-02-27 15:57:40
|
At 12:41 AM -0500 2/27/02, Craig B Upright wrote: >I have a suggested update for Alpha8's contextual menu, which you can >find here: I did the base CM implementation in Alpha8 and I really like what you've done here, Craig (sorry I didn't write back when you wrote to me originally; I've been traveling and I've been swamped at work and my laptop's been on the fritz and my dog ate my homework and...) A few comments: I wrote up some very rudimentary help for CMs and checked it into CVS about three months ago... and then Vince evidently removed it about two months ago... it can be found at <http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/alphatcl/Help/Attic/Contextual%20Menu%20Help>. Hopefully this answers some of your private questions to me about why things are passed the way they are... it's because that's the way the CMM does things. I'm all for hiding the gory details of the ToolBox from Alpha's Tcl developers, but I don't want to hide the power in the process. Since there are only about twelve lines of my code left, please feel much, /much/ more than welcome to list yourself as maintainer. 8^) That should be "contextualMenu.tcl" on line 263 in the help {} clause. I'm a bit uncomfortable with some of the items you include in the menu. The whole point of the contextual menu is that it's /contextual/. As such, recent files, open windows, and such seem inappropriate. I'm not saying it's not convenient and end users are certainly welcome to activate anything they feel makes life easier, but I think by default we should be careful to do things "right". The HIG doesn't have a tremendous amount to say about CMs, but I know I've read better guidance somewhere; we should strive to limit the number of items and make them truly contextual. Simply duplicating a bunch of global menus in the CM would not be in the spirit of the thing as I understand it. I'm certainly open to debate this, though (acknowledging, of course, that my position won't shift one iota and I will ruthlessly inflict my will on others). >This version takes the idea of 'context' to refer to both the current >open window and that window's mode to dynamically build the pop-up. Entirely appropriate. The window and its mode are certainly part of the context. >I've >made no attempt to make the text surrounding either the cursor or the >mouse position part of the 'context', although there is built in support >for any mode to do so via a '<mode> Utils' submenu. Careful here. The location of the context click is /not/ necessarily the current selection. The only way to know what context to consider is to examine the $pos and $selectionDesc arguments to contextualMenu::contextualMenu, which are presently discarded. >I've >attempted to streamline the building of the CM menu as much as possible, >I'm not sure if more can be done in the core to speed it up. Let me play with it some more and I'll see if I have any insights on how to accelerate things. -- Jonathan E. Guyer <http://www.his.com/jguyer/> |