[squeak-dev] PasteUpMorph>>#removeModalWindow has been deprecated --- what do we need to do?

Bob Arning arning315 at comcast.net
Mon Oct 9 13:28:27 UTC 2017



On 10/9/17 9:13 AM, H. Hirzel wrote:
> Looking a bit further it seems that modal window probably are not the issue here
>
> MorphicProject(Project)
> enter: returningFlag revert: revertFlag saveForRevert: saveForRevert
>
> ....
> 	CurrentProject world triggerEvent: #aboutToLeaveWorld.
> ....
>
>
> PasteUpMorph
> triggerEvent: anEventSelector
> 	"Evaluate all actions registered for <anEventSelector>. Return the
> value of the last registered action."
>
>      ^(self actionForEvent: anEventSelector) value
>
>
> anEventSelector is #aboutToLeaveWorld
> and this is not implemented in PasteUpMorph.
>
> We have an empty block and that causes #removeModalWindow in a way I
> do not understand yet.
>
> But if we would have
>
>      #aboutToLeaveWorld
>
> Then it we probably would not have this problem.
>
> I wonder  #aboutToLeaveWorld  where this comes form, Squeak 3.9 and
> Squeak 5.0 do not have it either.

It's not a method, it's an event selector:

     CurrentProject world triggerEvent: #aboutToLeaveWorld.

WebCamMorph>>intoWorld: aWorld


     super intoWorld: aWorld.
     camIsOn ifTrue: [self on]
                     ifFalse:[self off].
     self removeActionsForEvent: #aboutToEnterWorld.
     aWorld
         when: #aboutToLeaveWorld
         send: #outOfWorld:
         to: self
         with: aWorld.

similar stuff removed in the intervening years

B3DSceneMorph>>intoWorld: aWorld

     "The receiver is showing in the given world"
     aWorld ifNil:[^self].
     super intoWorld: aWorld.
     aWorld when: #aboutToLeaveWorld send: #suspendAcceleration to: self.
     aWorld when: #aboutToEnterWorld send: #restoreAcceleration to: self.
     self restoreAcceleration.

also for WonderlandCameraMorph
>
> --Hannes
>
>
>
>
>
> On 10/9/17, Marcel Taeumel <marcel.taeumel at hpi.de> wrote:
>> Hi Hannes,
>>
>> if you can manage to set-up the modal child (window), that removal should
>> happen automatically. Use SystemWindow >> #modalLockTo:. Also see Morph >>
>> #openModal:. For "control-flow-modality", instead, you should use a
>> DialogWindow. See DialogWindow >> #getUserResponse.
>>
>> Best,
>> Marcel
>> Am 09.10.2017 11:53:04 schrieb H. Hirzel <hannes.hirzel at gmail.com>:
>> Hello
>>
>> I start a separate thread for the issue brought up in the tread
>>
>> MorphicProject subclass: #EtoysProject
>>
>>
>> To see it in action make sure
>>
>> EToys-hjh.308.mcz
>>
>> is loaded. It contains a fix for the menuTitleBorderColor which makes
>> the following Etoys project load smoothly.
>>
>> Then drop the Etoys project file
>>
>> http://squeakland.org/content/articles/attach/FollowRoad.012.pr
>>
>> onto the desktop.
>>
>>
>>
>> When I choose 'World menu' -> 'Previous project', the following happens
>>
>>
>>
>>
>> ----------------------------------
>> Project class
>> ----------------------------------
>>
>> returnToPreviousProject
>> "Return to the project from which this project was entered. Do
>> nothing if the current project has no link to its previous project."
>>
>> | prevProj |
>> prevProj := CurrentProject previousProject.
>> prevProj ifNotNil: [prevProj enter: true revert: false
>> saveForRevert: false].
>>
>>
>>
>> ---------------------
>> MorphicProject(Project)
>>
>> enter: returningFlag revert: revertFlag saveForRevert: saveForRevert
>> "Install my ChangeSet, Transcript, and scheduled views as current
>> globals. If returningFlag is true, we will return to the project from
>> whence the current project was entered; don't change its
>> previousProject link in this case.
>> If saveForRevert is true, save the ImageSegment of the project
>> being left.
>> If revertFlag is true, make stubs for the world of the project
>> being left.
>> If revertWithoutAsking is true in the project being left, then
>> always revert."
>>
>> ......
>> CurrentProject world triggerEvent: #aboutToLeaveWorld.
>> .....
>>
>>
>> ----------------
>>
>> PasteUpMorph
>> --------------------
>>
>> triggerEvent: anEventSelector
>> "Evaluate all actions registered for . Return the
>> value of the last registered action."
>>
>> ^(self actionForEvent: anEventSelector) value
>>
>>
>> ------------------------
>> PasteUpMorph
>> ------------------------
>>
>>
>> removeModalWindow
>> self deprecated: 'The global becomeModal is no longer supported, use
>> e.g. a dialog window'.
>> "self modalWindow: nil"
>>
>>
>>
>> As mentioned in the thread
>> MorphicProject subclass: #EtoysProject
>> the issue may be "resolved" by just commenting out the deprecation message.
>>
>>
>>
>> removeModalWindow
>>
>> "self deprecated: 'The global becomeModal is no longer supported, use
>> e.g. a dialog window'. "
>>
>> self flag: #fixMe.
>>
>> "self modalWindow: nil"
>>
>>
>>
>> Should we do this for the moment until is is more clear how the
>> navigation mechanism in Etoys works?
>>
>> Other suggestions?
>>
>>
>> Kind regards
>>
>> Hannes Hirzel
>>
>>
>>
>>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20171009/4d9c49a8/attachment.html>


More information about the Squeak-dev mailing list