[squeak-dev] About customizing Squeak -> custom world menu?

Bob Arning arning315 at comcast.net
Sat Feb 24 17:36:53 UTC 2018


your method would need to display it after building it -- look at 
#putUpWorldMenu:  for the missing bits


On 2/24/18 12:18 PM, H. Hirzel wrote:
> On 2/24/18, Bob Arning <arning315 at comcast.net> wrote:
>> Or you could...
>>
>> World on: #mouseDown send: #putUpSomeOtherMenu: to: World
> This would be a better solution since it does involve adding a method
> but not changing a method of the base image.
>
> I tested it with adding #buildWorldMenu4: to PasteUpMorph
>
>      buildWorldMenu4: evt
>      |project |
>
>      project := self project ifNil: [Project current]  "mvc??".
>
>
>      ^(TheWorldMenu4 new
> 		world: self
> 		project: project
> 		hand: evt hand) buildWorldMenu.
>
>
> I executed
>      World on: #mouseDown send: #putUpSomeOtherMenu: to: World
>
> But the new world menu did not come up.
>
> So far
>
>      http://wiki.squeak.org/squeak/1047
>
> is the working solution I found for customizing the red button [1] menu
>
> --Hannes
>
>
> [1] Red button -- http://wiki.squeak.org/squeak/1904 - usually the
> left mouse button.
>
>> On 2/24/18 9:05 AM, H. Hirzel wrote:
>>> Yes, implementation is easy but my question is how it should be done
>>> in a way that conforms to the intention of the framework code.  A
>>> "recommended good solution".
>>>
>>> What about using a project preference?
>>>
>>> It needs the method PasteUpMorph buildWorldMenu: evt from May 2000
>>>
>>>       buildWorldMenu: evt
>>> 	^(TheWorldMenu new
>>> 		world: self
>>> 		project: (self project ifNil: [Project current])       "mvc??"
>>> 		hand: evt hand) buildWorldMenu.
>>>
>>>
>>> to be replaced with
>>>
>>>
>>>           buildWorldMenu: evt
>>>           |project worldMenuClassSymbol|
>>>
>>>           project := self project ifNil: [Project current]  "mvc??".
>>>
>>>           worldMenuClassSymbol := project
>>> projectPreferenceFlagDictionary at:
>>> #worldMenuClassSymbol ifAbsent: [#TheWorldMenu].
>>>
>>>       ^((Smalltalk at:  worldMenuClassSymbol) new
>>> 		world: self
>>> 		project: project
>>> 		hand: evt hand) buildWorldMenu.
>>>
>>>
>>> Detailed description:     http://wiki.squeak.org/squeak/1047
>>>
>>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20180224/84ace587/attachment.html>


More information about the Squeak-dev mailing list