[squeak-dev] Re: The Inbox: Morphic-cbr.392.mcz Breaks PopUpMenu

Chris Muller asqueaker at gmail.com
Sun Apr 4 23:15:00 UTC 2010


It looks like dtl did someting in January to cause these methods to
need to be prefixed with 'morphic' or 'mvc', and the dynamically
assembling a selector to perform...  ugh.

I see that the methods are there on PopUpMenu *without* the 'morphic'
prefix.  So can we get rid of the code which prepends the prefix or do
we still need it for mvc compatibility?

I wrangled on this for over an hour today first looking for the method
(waste of time) and then just trying to fix it; now I've got to get
back to work but does someone else know more about this?  This should
be fixed before release..


On Sat, Apr 3, 2010 at 2:22 PM, glenpaling <glenpaling at rogers.com> wrote:
>
> Removal of morphicStartUpWithCaption:icon:at:allowKeyboard: from PopUpMenu
> breaks StandardFileMenu (try:  StandardFileMenu oldFile). Perhaps you
> removed it because it has no senders. That's because the selector is created
> from the concatenation of 'morphic' and
> startUpWithCaption:icon:at:allowKeyboard in Project (see below). It was
> recently added by David T. Lewis to manage Morphic and MVC compatibility.
>
> dispatchTo: requestor addPrefixAndSend: baseSelector withArguments:
> arguments
>        "Sender wants to perform a method with dependencies on the type of project.
>        Dispatch to an appropriate method for the current project.
>
>        This method is a workaround for lack of proper ToolBuilder support in the
> sender,
>        and should be eliminated when possible (dtl Feb 2010)"
>
>        | selector |
>        "Flag target selectors to help identify senders"
>        self flag: #mvcOpenLabel:in: .
>        self flag: #morphicOpenLabel:in: .
>        self flag: #mvcStartUpLeftFlush .
>        self flag: #morphicStartUpLeftFlush .
>        self flag: #mvcStartUpWithCaption:icon:at:allowKeyboard: .
>        self flag: #morphicStartUpWithCaption:icon:at:allowKeyboard: .
>        self flag: #mvcOpen: .
>        self flag: #morphicOpen: .
>        self flag: #mvcOpen .
>        self flag: #morphicOpen .
>
>        selector := (self selectorPrefixForDispatch, baseSelector) asSymbol.
>        ^ requestor perform: selector withArguments: argumentsglenpaling at ...
> commits-2 wrote:
>>
>> A new version of Morphic was added to project The Inbox:
>> http://source.squeak.org/inbox/Morphic-cbr.392.mcz
>>
>> ==================== Summary ====================
>>
>> Name: Morphic-cbr.392
>> Author: cbr
>> Time: 26 March 2010, 1:38:37.423 am
>> UUID: d2ec5332-d31e-40e5-a5b4-f896cea50f20
>> Ancestors: Morphic-mha.391
>>
>> I find it irksome that we have two help menus (one in the main docking
>> bar, one in the world menu.) I also find it irksome that there's so much
>> stuff in the help menu that's in the world menu that's not really
>> help-related.
>>
>> I moved the stuff that's actually help (except for "world menu help" which
>> really isn't that helpful) out of the world menu and into the docking bar.
>> I took everything else that wasn't already exposed somewhere and put it in
>> the Extras menu on the docking bar.
>>
>> I moved telemorphic up to the top of the world menu because I don't know
>> what it's for, because it pops a submenu that wants self to be an instance
>> of TheWorldMenu, and because I didn't really care to mess with
>> transplanting it.
>>
>> BIG snip
>>
>> Item was removed:
>> - ----- Method:
>> PopUpMenu>>morphicStartUpWithCaption:icon:at:allowKeyboard: (in category
>> '*Morphic-Menus') -----
>> - morphicStartUpWithCaption: captionOrNil icon: aForm at: location
>> allowKeyboard: aBoolean
>> -     "Display the menu, with caption if supplied. Wait for the mouse button
>> to go down, then track the selection as long as the button is pressed.
>> When the button is released,
>> -     Answer the index of the current selection, or zero if the mouse is not
>> released over  any menu item. Location specifies the desired topLeft of
>> the menu body rectangle. The final argument indicates whether the menu
>> should seize the keyboard focus in order to allow the user to navigate it
>> via the keyboard."
>> -
>> -     selection := Cursor normal
>> -                             showWhile: [| menuMorph |
>> -                                     menuMorph := MVCMenuMorph from: self title: nil.
>> -                                     (captionOrNil notNil
>> -                                                     or: [aForm notNil])
>> -                                             ifTrue: [menuMorph addTitle: captionOrNil icon: aForm].
>> -                                     MenuIcons decorateMenu: menuMorph.
>> -                                     menuMorph
>> -                                             invokeAt: location
>> -                                             in: ActiveWorld
>> -                                             allowKeyboard: aBoolean].
>> -     ^ selection!
>>
>>
>>
>>
> --
> View this message in context: http://n4.nabble.com/The-Inbox-Morphic-cbr-392-mcz-tp1691850p1750456.html
> Sent from the Squeak - Dev mailing list archive at Nabble.com.
>
>



More information about the Squeak-dev mailing list