[squeak-dev] Case sensitive "source with it" works in MVC but not in Morphic, what to do?

Bob Arning arning315 at comcast.net
Mon May 13 15:18:26 UTC 2013


or

submenus




Cheers,
Bob

On 5/13/13 10:36 AM, David T. Lewis wrote:
> On Mon, May 13, 2013 at 12:42:19PM +0200, Bert Freudenberg wrote:
>> On 2013-05-13, at 02:48, David T. Lewis <lewis at mail.msen.com> wrote:
>>
>>> On Fri, May 10, 2013 at 09:38:28AM -0400, Bob Arning wrote:
>>>> Maybe, but what's happening here is in MenuItemMorph:
>>>>
>>>> mouseDown: evt
>>>>     "Handle a mouse down event. Menu items get activated when the mouse
>>>> is over them."
>>>>
>>>>     evt shiftPressed ifTrue: [ ^super mouseDown: evt ].  "enable label
>>>> editing"
>>>>     evt hand newMouseFocus: owner. "Redirect to menu for valid transitions"
>>>>     owner selectItem: self event: evt
>>>>
>>>> I see this code as far back as squeak 3.2 with a 10/10/2000 date and
>>>> Andreas's initials. If you comment out the first line, you get the
>>>> behavior David was looking for. It would be interesting to know who
>>>> might be using this feature.
>>>>
>>>> Cheers,
>>>> Bob
>>> Aha! I suspect that no one is using that feature at all.
>> I use it: shift-click followed by CMD-E is the quickest way to look at the implementation behind a menu item. OTOH, a morphic halo menu entry might be more appropriate for that function.
>>
> I see no straightforward way to eliminate the conflict between conflict
> between usage of shift state for Morphic, versus usage of shift state to
> control case sensitive search.
>
> Adding menu items for the case sensitive searching works fine, though I'm
> afraid that it would make the menus too cluttered. Basically it would
> change menus from this:
>
>      #-.
>      {'selectors containing it (W)' translated.    #methodNamesContainingIt}.
>      {'method strings with it (E)' translated.     #methodStringsContainingit}.
>      {'method source with it' translated.          #methodSourceContainingIt}.
>      {'class names containing it' translated.      #classNamesContainingIt}.
>      {'class comments with it' translated.         #classCommentsContainingIt}.
>      {'change sets with it' translated.            #browseChangeSetsWithSelector}.
>      #-.
>
> to something that might look more like this:
>
>      #-.
>      {'selectors containing it (W)' translated.    #methodNamesContainingIt}.
>      {'method strings with it' translated.         #methodStringsContainingit}.
>      {'method strings with it matching case (E)' translated.  #methodStringsMatchCaseContainingit}.
>      {'method source with it' translated.          #methodSourceContainingIt}.
>      {'method source with it matching case' translated.        #methodSourceMatchCaseContainingIt}.
>      {'class names containing it' translated.      #classNamesContainingIt}.
>      {'class comments with it' translated.         #classCommentsContainingIt}.
>      {'class comments with it matching case' translated.       #classCommentsMatchCaseContainingIt}.
>      {'change sets with it' translated.            #browseChangeSetsWithSelectorMatchingCase}.
>      #-.
>
> So maybe a different approach is better. Perhaps we could leave menus and
> shift key handling as they are, and accept the conflict in Morphic, but add
> some additional hot key support. Currently <alt>E will invoke case-sensitive
> "method strings with it". We could add definitions for other functions, such as:
>
>      <alt>E => case-sensitive method strings with it
>      <alt>e => non-case-sensitive method strings with it
>      <alt>S => case-sensitive method source with it
>      <alt>s => non-case-sensitive method source with it
>
> and the menu might look like this:
>
>      #-.
>      {'selectors containing it (W)' translated.      #methodNamesContainingIt}.
>      {'method strings with it (e) (E) ' translated.  #methodStringsContainingit}.
>      {'method source with it (s) (S)' translated.    #methodSourceContainingIt}.
>      {'class names containing it' translated.        #classNamesContainingIt}.
>      {'class comments with it' translated.           #classCommentsContainingIt}.
>      {'change sets with it' translated.              #browseChangeSetsWithSelectorMatchingCase}.
>      #-.
>
> Just a thought.
>
> Dave
>
>   
>
>

-------------- next part --------------
Skipped content of type multipart/related


More information about the Squeak-dev mailing list