<body><div id="__MailbirdStyleContent" style="font-size: 12pt;font-family: calibri;color: #000000">
                                        @Tobias: In the future, we should get the project-specific parts of PasteUpMorph extracted into sth. called WorldMorph to be used only as the global "desktop thingy" for Morphic projects. The currently mixed state is really confusing. If there is other left-over stuff not yet ready for the Morph base class (gridding?), we could add an additional "Playfield", too. Not sure about the name, though. :)<div><br></div><div>I do not think that it is worth supporting existing code that relies on "PasteUpMorph allInstances" to work in its current form. Same for "ContextPart allInstances".<br><div><br></div><div>Best,</div><div>Marcel</div></div><div class="mb_sig"></div><blockquote class="history_container" type="cite" style="border-left-style:solid;border-width:1px; margin-top:20px; margin-left:0px;padding-left:10px;">
                        <p style="color: #AAAAAA; margin-top: 10px;">Am 03.10.2017 15:34:25 schrieb H. Hirzel <hannes.hirzel@gmail.com>:</p>What Marcel refers to<br><br>Morph<br>   BorderedMorph<br>        PasteUpMorph    "maintains the current tasks of Background<br>images, gridding,<br>                                  drag-and-drop helpers"<br>            EtoysMorph     "keeps Etoys specific messages"<br><br><br>And then<br><br>Morph<br>   BorderedMorph<br>        WorldMorph   (PasteUpMorph renamed, methods such as gridding maintained)<br>            PasteUpMorph    "empty PasteUpMorph class for compatibility"<br>                EtoysPasteUpMorph     "keeps Etoys specific messages"<br><br><br>Another issue not discussed here is that PasteUpMorph includes<br>WorldMorph functions.<br><br>Pharo has separated this. This is an issue which comes up from time to<br>time. [5] The advantage of keeping them together is that you may have<br>worlds in worlds. But this discussion is not related to the issue<br>Etoys refactoring issue.<br><br>--Hannes<br><br>[5] http://forum.world.st/WorldMorph-subclass-PasteUpMorph-tp4946461p4946465.html<br><br>On 10/3/17, H. Hirzel <hannes.hirzel@gmail.com> wrote:<br>> On 10/3/17, Tobias Pape <das.linux@gmx.de> wrote:<br>>><br>>>> On 03.10.2017, at 15:03, Marcel Taeumel <marcel.taeumel@hpi.de> wrote:<br>>>><br>>>> +1 :)<br>>>><br>>>> And then later: Rename PasteUpMorph to WorldMorph, and keep an empty<br>>>> PasteUpMorph subclass around for compatibility reasons. So many ideas<br>>>> have<br>>>> been ported down to Morph class over the past years. New applications<br>>>> have<br>>>> no reason to ever use other instances of PasteUpMorph.<br>>><br>>> -1<br>>> Except for Background images, gridding, drag-and-drop helpers, etc.<br>>> It should rather be a PlayField (as it comment already states).<br>><br>> PlayField? I do not find a class named 'PlayField' in a current Trunk<br>> image.<br>> Which class do you mean?<br>><br>>><br>>> Also, be wary of the "rename then subclass" deprecation, because if<br>>> certain<br>>> projects extend the deprecated subclass (And a lot do for PasteUpMorph),<br>>> those extensions will never be used in typical circumstances.<br>>><br>>> (This also bit me with the ContextPart depercation… Certain tools that<br>>> hook<br>>> into debugging stuff via ContextPart extensions no longer work as no<br>>> ContextParts will ever be around. Oh well..)<br>>><br>>> Best regards<br>>>     -Tobias<br>>><br>>>><br>>>> Best,<br>>>> Marcel<br>>>>> Am 03.10.2017 14:57:55 schrieb H. Hirzel <hannes.hirzel@gmail.com>:<br>>>>><br>>>>> On 10/3/17, H. Hirzel wrote:<br>>>>> > Dave<br>>>>> ><br>>>>> > your change set contains the class EtoysProject with<br>>>>> ><br>>>>> > EtoysProject selectors<br>>>>> ><br>>>>> > #(#finalEnterActions: #restoreGlobalPreferences<br>>>>> > #saveGlobalPreferences<br>>>>> > #initializeProjectPreferences #configureOnFirstEntry<br>>>>> > #finalExitActions:)<br>>>>> ><br>>>>> > For complete configuration of a EtoysProject it might be necessary to<br>>>>> > do<br>>>>> ><br>>>>> > PasteUpMorph subclass: EtoysPasteUpMorph<br>>>>> ><br>>>>> > as well. http://wiki.squeak.org/squeak/6461<br>>>>> ><br>>>>> > Then Etoys related methods may be pushed down to EtoysPasteUpMorph.<br>>>>><br>>>>> See screen shot attached.<br>>>>><br>>>>> > And probably an Etoys specific subclass of WorldMenu would be fine as<br>>>>> > well<br>>>>> > http://wiki.squeak.org/squeak/6461<br>>>>> ><br>>>>> ><br>>>>> > there is a test project [2] and some more information about adaptions<br>>>>> > needed because of the UI changes in the thread 'Etoys in 2017?' - UI<br>>>>> > preferences [3]. And it would be good to have Etoys methods /<br>>>>> > configuration separate [4].<br>>>>> ><br>>>>> > I suggest that you start go ahead and start implementing this while<br>>>>> > using a test Etoys project dropped onto the desktop.<br>>>>> ><br>>>>> > --Hannes<br>>>>> ><br>>>>> ><br>>>>> > [2] > You simply drop it in. E.g. download this project<br>>>>> >> http://etoys.laptop.org/src/Content/ExampleEtoys/CarAndPen.014.pr<br>>>>> ><br>>>>> > [3] Hannes Hirzel, 'Etoys in 2017?' mail, Wed, Feb 22, 2017 at 11:01<br>>>>> > AM<br>>>>> ><br>>>>> ><br>>>>> > [4] David T. Lewis, Sep 4, 2016 at 3:34 PM<br>>>>> > "I think it would be great if both Etoys and Scratch were easily<br>>>>> > loadable and unloadable in trunk."<br>>>>> ><br>>>>> > On 10/2/17, David T. Lewis wrote:<br>>>>> >> An EtoysProject is a project that is configured for running Etoys.<br>>>>> >> On<br>>>>> >> first entry to a new EtoysProject, the playground and project<br>>>>> >> preferences<br>>>>> >> are initialized to provide an environment similar to that of a<br>>>>> >> traditional<br>>>>> >> standalone Etoys image.<br>>>>> >><br>>>>> >> Certain preferences that are required for Etoys are initialized on<br>>>>> >> project<br>>>>> >> entry, overriding their global preference values while this<br>>>>> >> EtoysProject<br>>>>> >> is active. On leaving the project, these preferences are restored to<br>>>>> >> their<br>>>>> >> previous values.<br>>>>> >><br>>>>> >> "ProjectViewMorph openOn: EtoysProject new"<br>>>>> >><br>>>>> >> Change set attached for a minimal implementation.<br>>>>> >><br>>>>> >> Anyone with Etoys knowledge care to help? I do not know enough about<br>>>>> >> Etoys<br>>>>> >> to fill in the rest of the initialization that will be required, but<br>>>>> >> it<br>>>>> >> should not be hard to do.<br>>>>> >><br>>>>> >> Dave<br>>>>> >><br>>>>> >><br>>>>> ><br>>>>><br>>>><br>>><br>>><br>>><br>><br><br></hannes.hirzel@gmail.com></marcel.taeumel@hpi.de></das.linux@gmx.de></hannes.hirzel@gmail.com>
                        </blockquote>
                                        </div></body>