<body><div id="__MailbirdStyleContent" style="font-size: 12pt;font-family: calibri;color: #000000">
                                        Hi Dave,<div><br></div><div>I just added an account "mt2" ... because "mt" was already taken. :)</div><div><br></div><div>Best,</div><div>Marcel</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 04.10.2017 03:29:07 schrieb David T. Lewis <lewis@mail.msen.com>:</p>I put my initial change set on SqueakSource at http://www.squeaksource.com/EtoysProject.<br><br>This is intended as a temporary SqueakSource project for working out how<br>to structure EtoysProject and get it to open a new project with the familiar<br>playfield.<br><br>Hannes, Tobias, Bert and I have write access, and I would like to add Marcel<br>if he has a squeaksource.com account (I could not find it). Please commit<br>anything that you thimk makes sense.<br><br>As you may have guessed by now, I do not actually know enough about Etoys<br>to make it work. I just put that change set out to see if I could Tom Sawyer<br>a few of the more knowledgable folks to doing the hard parts. I think it<br>might be working :-)<br><br>I think that the Etoys package in trunk is probably too large for us to be<br>doing a lot of experimental changes right now, so my hope is that by putting<br>the Project related part into its own package temporarily, and putting that<br>up on squeaksource.com, that we can get this part working well enough<br>to merge back into Etoys in trunk when it is ready.<br><br>From my point of view, "working well enough" means:<br><br>- Open a new EtoysProject in Trunk, and the result is an Etoys playfield<br>that is reasonably similar to a stand-alone Etoys image. The new project<br>should open with the little car driving around, and with tabs and menus<br>as expected for Etoys.<br><br>- Returning from that Etoys project brings you back to a project that<br>still works. Whatever preferences were established or overridden to make<br>Etoys work should be restored so that the other projects are not affected.<br><br>Dave<br><br><br>On Tue, Oct 03, 2017 at 10:45:12PM +0200, H. Hirzel wrote:<br>> Thank you for the clarification, Tobias.<br>> <br>> As noted earlier in the thread the suggestion at the moment is just to subclass<br>> <br>>       PasteUpMorph subclass: EtoysPasteUpMorph<br>> <br>> and push all the *Etoys related methods down to EtoysPasteUpMorph.<br>> <br>> Link to from EtoysProject to  EtoysPasteUpMorph can easily be done in<br>> the initialize method of EtoysProject<br>> <br>> <br>> MorphicProject<br>> initialize<br>>        "Initialize a new Morphic Project"<br>>      super initialize.<br>>         world := PasteUpMorph newWorldForProject: self.<br>>   self setWorldBackground: true.<br>>    Locale switchToID: CurrentProject localeID.<br>>       Preferences useVectorVocabulary ifTrue: [world installVectorVocabulary]<br>> <br>> <br>> <br>> EtoysProject<br>> initialize<br>>  "Initialize a new Morphic Project"<br>>      super initialize.<br>>         world := EtoysPasteUpMorph newWorldForProject: self.<br>>      self setWorldBackground: true.<br>>    Locale switchToID: CurrentProject localeID.<br>>       Preferences useVectorVocabulary ifTrue: [world installVectorVocabulary]<br>> <br>> <br>> or maybe better not override the initialize method but asking the<br>> class in MorphicProject<br>> <br>> <br>> MorphicProject<br>> initialize<br>>   "Initialize a new Morphic Project"<br>>      super initialize.<br>>         world := self class defaultPasteUpMorphClass newWorldForProject: self.<br>>    self setWorldBackground: true.<br>>    Locale switchToID: CurrentProject localeID.<br>>       Preferences useVectorVocabulary ifTrue: [world installVectorVocabulary]<br>> <br>> <br>> It depends on other issue which have to be done in<br>> <br>> EtoysProject initialize<br>> <br>> <br>> <br>> <br>> On 10/3/17, Tobias Pape <das.linux@gmx.de> wrote:<br>> ><br>> >> On 03.10.2017, at 15:17, H. Hirzel <hannes.hirzel@gmail.com> wrote:<br>> >><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>> ><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>> > Comment of PasteUpMorph:<br>> ><br>> > "A morph whose submorphs comprise a paste-up of rectangular subparts which<br>> > "show through".  Anything called a 'Playfield' is a PasteUpMorph."<br>> ><br>> > etc.<br>> ><br>> > Best regards<br>> >     -Tobias<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 #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. 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>> ><br>> ><br>> <br><br></hannes.hirzel@gmail.com></marcel.taeumel@hpi.de></das.linux@gmx.de></hannes.hirzel@gmail.com></das.linux@gmx.de>
                        </blockquote>
                                        </div></body>