<div id="__MailbirdStyleContent" style="font-size: 10pt;font-family: Arial;color: #000000;text-align: left" dir="ltr">
                                        Hi Stephen --<div><br></div><div>> <span style="font-family: Arial, Helvetica, sans-serif;font-size: 10pt">Sounds like yet another reason to drop morphic, if you ask me, and go back to good-old MVC…</span></div><div><span style="font-family: Arial, Helvetica, sans-serif"><br></span></div><div><span style="font-family: Arial, Helvetica, sans-serif">To you? Maybe. Fortunately, us frequent users of and contributors to Squeak/Morphic see this a bit differently. ;-)</span></div><div><span style="font-family: Arial, Helvetica, sans-serif"><br></span></div><div><span style="font-family: Arial, Helvetica, sans-serif;font-size: 13px">> I’ve been watching this thread and wondering why nobody suggests the simplest answer: [...]</span></div><div><span style="font-family: Arial, Helvetica, sans-serif"><span style="font-size: 13px"><br></span></span></div><div><span style="font-family: Arial, Helvetica, sans-serif"><span style="font-size: 13px">First, counting the number of characters, your suggestion has more compared to using #future:. ;-) Second, I am not quite sure how you define "simplest", but using #fork comes with *a lot* of semantic baggage. One might encounter all kinds of nasty debuggers just because one does not know about the challenges of multi-processing and shared data structures and so on. Just because ST-80 MVC did not even try to support you in this regard does not imply that it is better compared to Morphic. At least, Morphic gives you something to work with.</span></span></div><div><span style="font-family: Arial, Helvetica, sans-serif"><span style="font-size: 13px"><br></span></span></div><div><span style="font-family: Arial, Helvetica, sans-serif"><span style="font-size: 13px">It is so funny how people react to things they do not yet know much about. Many times, they are kind of anxious and claim to know better without even trying to learn about that unfamiliar territory. Jumping to conclusions ... so many times ... just jumping to conclusions. It is exhausting.</span></span></div><div><span style="font-family: Arial, Helvetica, sans-serif"><span style="font-size: 13px"><br></span></span></div><div><span style="font-family: Arial, Helvetica, sans-serif"><span style="font-size: 13px">In general, I am always interested in discussing and improving the challenging parts in Squeak, including Morphic. However, if somebody thinks that "replacing everything" can make things better, that somebody deliberately chose to not participate in such a discussion any longer.</span></span></div><div><span style="font-family: Arial, Helvetica, sans-serif"><span style="font-size: 13px"><br></span></span></div><div><span style="font-family: Arial, Helvetica, sans-serif"><span style="font-size: 13px">Guess what? Nothing is perfect. Try to look for the nice things. It may even brighten up your day a little bit. ;-)</span></span></div><div><span style="font-family: Arial, Helvetica, sans-serif"><span style="font-size: 13px"><br></span></span></div><div><span style="font-family: Arial, Helvetica, sans-serif"><span style="font-size: 13px">Best,</span></span></div><div><span style="font-family: Arial, Helvetica, sans-serif"><span style="font-size: 13px">Marcel</span></span></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 24.02.2023 02:14:46 schrieb Stephen Travis Pope <stephen@heaveneverywhere.com>:</p><div style="font-family:Arial,Helvetica,sans-serif"><div><br></div>Sounds like yet another reason to drop morphic, if you ask me, and go back to good-old MVC…<div><br></div><div>stp<br><div>
<br class="Apple-interchange-newline" style="font-family: "Times New Roman";font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: auto;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;widows: auto;word-spacing: 0px;-webkit-text-size-adjust: auto;-webkit-text-stroke-width: 0px;text-decoration: none;font-size: 16px;caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0)"><span style="font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: auto;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;widows: auto;word-spacing: 0px;-webkit-text-size-adjust: auto;-webkit-text-stroke-width: 0px;text-decoration: none;caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-family: HelveticaNeue;font-size: 12px;float: none;display: inline !important">--------</span><br style="font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: auto;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;widows: auto;word-spacing: 0px;-webkit-text-size-adjust: auto;-webkit-text-stroke-width: 0px;text-decoration: none;caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-family: HelveticaNeue;font-size: 12px"><br style="font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: auto;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;widows: auto;word-spacing: 0px;-webkit-text-size-adjust: auto;-webkit-text-stroke-width: 0px;text-decoration: none;caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-family: HelveticaNeue;font-size: 12px"><span style="font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: auto;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;widows: auto;word-spacing: 0px;-webkit-text-size-adjust: auto;-webkit-text-stroke-width: 0px;text-decoration: none;caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-family: HelveticaNeue;font-size: 12px;float: none;display: inline !important">Stephen Travis Pope    Ojai,</span><span style="font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: auto;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;widows: auto;word-spacing: 0px;-webkit-text-size-adjust: auto;-webkit-text-stroke-width: 0px;text-decoration: none;caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-family: HelveticaNeue;font-size: 12px;float: none;display: inline !important"> </span><span style="font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: auto;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;widows: auto;word-spacing: 0px;-webkit-text-size-adjust: auto;-webkit-text-stroke-width: 0px;text-decoration: none;caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-family: HelveticaNeue;font-size: 12px;float: none;display: inline !important">California, USA</span><br style="font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: auto;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;widows: auto;word-spacing: 0px;-webkit-text-size-adjust: auto;-webkit-text-stroke-width: 0px;text-decoration: none;caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-family: HelveticaNeue;font-size: 12px"><span style="font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: auto;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;widows: auto;word-spacing: 0px;-webkit-text-size-adjust: auto;-webkit-text-stroke-width: 0px;text-decoration: none;font-family: HelveticaNeue;font-size: 12px;caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0)">    </span><span style="font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: auto;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;widows: auto;word-spacing: 0px;-webkit-text-size-adjust: auto;-webkit-text-stroke-width: 0px;text-decoration: none;font-family: HelveticaNeue;font-size: 12px;caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0)"></span><span style="font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: auto;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;widows: auto;word-spacing: 0px;-webkit-text-size-adjust: auto;-webkit-text-stroke-width: 0px;text-decoration: none;caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-family: HelveticaNeue;font-size: 12px"></span><span style="font-family: "Times New Roman";font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: auto;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;widows: auto;word-spacing: 0px;-webkit-text-size-adjust: auto;-webkit-text-stroke-width: 0px;text-decoration: none;font-size: 16px;caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0)"></span><span style="font-family: "Times New Roman";font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: auto;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;widows: auto;word-spacing: 0px;-webkit-text-size-adjust: auto;-webkit-text-stroke-width: 0px;text-decoration: none;caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-size: 16px"></span><span style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-family: "Times New Roman";font-size: 18px;font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: auto;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;widows: auto;word-spacing: 0px;-webkit-text-size-adjust: auto;-webkit-text-stroke-width: 0px;text-decoration: none"></span><span><img alt="pastedGraphic.tiff" src="cid:55B397C7-3D20-4E60-A051-4564245235A7@sd.cox.net"></img></span><span style="font-family: HelveticaNeue"><span style="font-style: normal;font-size: 12px"><br>     http://HeavenEverywhere.com</span></span><div style="font-family: "Times New Roman";font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: auto;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;widows: auto;word-spacing: 0px;-webkit-text-size-adjust: auto;-webkit-text-stroke-width: 0px;text-decoration: none;font-size: 16px;caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0)"><span style="font-family: HelveticaNeue"><span style="font-style: normal;font-size: 12px">     http://FASTLabInc.com</span></span></div><div style="font-family: "Times New Roman";font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: auto;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;widows: auto;word-spacing: 0px;-webkit-text-size-adjust: auto;-webkit-text-stroke-width: 0px;text-decoration: none;font-size: 16px;caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0)"><span style="font-family: HelveticaNeue"><span style="font-style: normal;font-size: 12px">     https://vimeo.com/user19434036/videos</span></span></div><div style="font-family: "Times New Roman";font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: auto;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;widows: auto;word-spacing: 0px;-webkit-text-size-adjust: auto;-webkit-text-stroke-width: 0px;text-decoration: none;font-size: 16px;caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0)"><span style="font-family: HelveticaNeue"><span style="font-style: normal;font-size: 12px">     </span></span><span style="font-size: 12px;font-family: HelveticaNeue">http://heaveneverywhere.com/Reflections</span></div><div style="font-family: "Times New Roman";font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: auto;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;widows: auto;word-spacing: 0px;-webkit-text-size-adjust: auto;-webkit-text-stroke-width: 0px;text-decoration: none;font-size: 16px;caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0)"><span style="font-family: HelveticaNeue"><span style="font-style: normal;font-size: 12px"><br></span></span><br style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-family: "Times New Roman";font-size: 16px;font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration: none"></div>
</div>
<div><br><blockquote type="cite"><div>On Feb 23, 2023, at 1:54 PM, Vanessa Freudenberg <vanessa@codefrau.net> wrote:</div><br class="Apple-interchange-newline"><div><div dir="ltr"><div>Because Morphic is not multi-thread-clean, you have to be really careful how to write the do_something to be reliably executed from a different process. You have to coordinate with the UI process. In which case it actually becomes simpler to just stay in the UI process and use the mechanisms available.</div><div><br></div><div>Vanessa</div><div><br></div><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Feb 23, 2023 at 11:38 AM Stephen Travis Pope <<a href="mailto:stephen@heaveneverywhere.com">stephen@heaveneverywhere.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div><div><br></div>I’ve been watching this thread and wondering why nobody suggests the simplest answer:<div><br></div><div><span style="white-space:pre-wrap">     </span>[(Delay forSeconds: 5) wait.</div><div><span style="white-space:pre-wrap">     </span>do_something] fork.</div><div><br></div><div>stp<br><div>
<br style="font-family: "Times New Roman";font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;word-spacing: 0px;text-decoration: none;font-size: 16px"><span style="font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;word-spacing: 0px;text-decoration: none;font-family: HelveticaNeue;font-size: 12px;float: none;display: inline">--------</span><br style="font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;word-spacing: 0px;text-decoration: none;font-family: HelveticaNeue;font-size: 12px"><br style="font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;word-spacing: 0px;text-decoration: none;font-family: HelveticaNeue;font-size: 12px"><span style="font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;word-spacing: 0px;text-decoration: none;font-family: HelveticaNeue;font-size: 12px;float: none;display: inline">Stephen Travis Pope    Ojai,</span><span style="font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;word-spacing: 0px;text-decoration: none;font-family: HelveticaNeue;font-size: 12px;float: none;display: inline"> </span><span style="font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;word-spacing: 0px;text-decoration: none;font-family: HelveticaNeue;font-size: 12px;float: none;display: inline">California, USA</span><br style="font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;word-spacing: 0px;text-decoration: none;font-family: HelveticaNeue;font-size: 12px"><span style="font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;word-spacing: 0px;text-decoration: none;font-family: HelveticaNeue;font-size: 12px">    </span><span style="font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;word-spacing: 0px;text-decoration: none;font-family: HelveticaNeue;font-size: 12px"></span><span style="font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;word-spacing: 0px;text-decoration: none;font-family: HelveticaNeue;font-size: 12px"></span><span style="font-family: "Times New Roman";font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;word-spacing: 0px;text-decoration: none;font-size: 16px"></span><span style="font-family: "Times New Roman";font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;word-spacing: 0px;text-decoration: none;font-size: 16px"></span><span style="font-family: "Times New Roman";font-size: 18px;font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;word-spacing: 0px;text-decoration: none"></span><span><span id="cid:186804025b35349b00c1"><pastedGraphic.tiff></span></span><span style="font-family: HelveticaNeue"><span style="font-style: normal;font-size: 12px"><br>     <a href="http://heaveneverywhere.com/" target="_blank">http://HeavenEverywhere.com</a></span></span><div style="font-family: "Times New Roman";font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;word-spacing: 0px;text-decoration: none;font-size: 16px"><span style="font-family: HelveticaNeue"><span style="font-style: normal;font-size: 12px">     <a href="http://fastlabinc.com/" target="_blank">http://FASTLabInc.com</a></span></span></div><div style="font-family: "Times New Roman";font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;word-spacing: 0px;text-decoration: none;font-size: 16px"><span style="font-family: HelveticaNeue"><span style="font-style: normal;font-size: 12px">     <a href="https://vimeo.com/user19434036/videos" target="_blank">https://vimeo.com/user19434036/videos</a></span></span></div><div style="font-family: "Times New Roman";font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;word-spacing: 0px;text-decoration: none;font-size: 16px"><span style="font-family: HelveticaNeue"><span style="font-style: normal;font-size: 12px">     </span></span><span style="font-size: 12px;font-family: HelveticaNeue"><a href="http://heaveneverywhere.com/Reflections" target="_blank">http://heaveneverywhere.com/Reflections</a></span></div><div style="font-family: "Times New Roman";font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;word-spacing: 0px;text-decoration: none;font-size: 16px"><span style="font-family: HelveticaNeue"><span style="font-style: normal;font-size: 12px"><br></span></span><br style="font-family: "Times New Roman";font-size: 16px;font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;word-spacing: 0px;text-decoration: none"></div>
</div>
<div><br><blockquote type="cite"><div>On Feb 22, 2023, at 11:16 AM, karl ramberg <<a href="mailto:karlramberg@gmail.com" target="_blank">karlramberg@gmail.com</a>> wrote:</div><br><div><div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Feb 22, 2023 at 8:47 AM Taeumel, Marcel via Squeak-dev <<a href="mailto:squeak-dev@lists.squeakfoundation.org" target="_blank">squeak-dev@lists.squeakfoundation.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">



<div>
<div dir="auto">(bm2 future: 1000) doButtonAction.</div></div></blockquote><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div>
<div dir="auto"><br>
</div>
<div dir="auto">Also works for objects that are not or cannot be in the world.</div>
<div dir="auto"><br>
</div>
<div dir="auto">Uses Morphic alarms when when in UI process.</div></div></blockquote><div> </div><div>
<div>Ah, that's cool. I never used #future:  :-)</div><div><br></div><div>Best,</div><div>Karl</div>  <br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div>
<div dir="auto"><br>
</div>
<div dir="auto">Best,</div>
<div dir="auto">Marcel</div>
<hr style="display:inline-block;width:98%">
<div id="m_-1050382433257594564m_7109622996527457199divRplyFwdMsg" dir="ltr"><span style="font-family: Calibri, sans-serif"><b>From:</b> Squeak-dev <<a href="mailto:squeak-dev-bounces@lists.squeakfoundation.org" target="_blank">squeak-dev-bounces@lists.squeakfoundation.org</a>> on behalf of Eduardo Ochs <<a href="mailto:eduardoochs@gmail.com" target="_blank">eduardoochs@gmail.com</a>><br>
<b>Sent:</b> Wednesday, February 22, 2023 7:17:01 AM<br>
<b>To:</b> The general-purpose Squeak developers list <<a href="mailto:squeak-dev@lists.squeakfoundation.org" target="_blank">squeak-dev@lists.squeakfoundation.org</a>><br>
<b>Subject:</b> Re: [squeak-dev] How do I "sleep 5"?</span>
<div> </div>
</div>
<div>
<div dir="ltr">
<div dir="ltr">Hi Karl!<br>
Fantastic, thanks! =)<br>
I added this to the class in which I'm putting most of my stuff,<br>
<br>
!See class methodsFor: 'as yet unclassified' stamp: 'Edrx 2/22/2023 02:54'!<br>
run: aBlock after: ms<br>
| aButton |<br>
aButton := SimpleButtonMorph new.<br>
aButton openInWorld;<br>
        hide;<br>
        target: aBlock;<br>
        actionSelector: #value;<br>
        addAlarm: #doButtonAction after: ms.<br>
! !<br>
<br>
and now I can simply run this<br>
<br>
  See run: [ kf := self currentHand keyboardFocus ] after: 5000.<br>
<br>
to save into the variable kf the morph on which the keyboard focus is<br>
after 5 seconds. Neat! =)<br>
<br>
  Cheers,<br>
    Eduardo Ochs<br>
    <a href="http://anggtwu.net/eev-squeak.html" target="_blank">http://anggtwu.net/eev-squeak.html</a><br>
</div>
<div><br>
</div>
<br>
<div>
<div dir="ltr">On Wed, 22 Feb 2023 at 01:56, karl ramberg <<a href="mailto:karlramberg@gmail.com" target="_blank">karlramberg@gmail.com</a>> wrote:<br>
</div>
<blockquote style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div dir="ltr">
<div>Hi,</div>
<div>A morph has to be in the world to be able to interact with it; eg. #openInWorld.<br>
</div>
<div><br>
</div>
<div>If you don't want to see the morph you can send it message #hide. It makes the morph invisible but it's still in the world and can interact with it.<br>
</div>
<div>To see the morph again send #show.</div>
<div>To delete the morph send #delete. The morph will be garbage collected.<br>
</div>
<div><br>
</div>
<div>Best,</div>
<div>Karl<br>
</div>
<div><br>
</div>
</div>
<br>
<div>
<div dir="ltr">On Tue, Feb 21, 2023 at 11:57 PM Eduardo Ochs <<a href="mailto:eduardoochs@gmail.com" target="_blank">eduardoochs@gmail.com</a>> wrote:<br>
</div>
<blockquote style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div dir="ltr">
<div dir="ltr">Hi Vanessa!<br>
Thanks! =) This works in a workspace,<br>
<br>
  "Create a SimpleSwitchMorph with label 'Toggle'<br>
      and a SimpleButtonMorph with label 'Flash'.<br>
      The button will be placed below the switch."<br>
  <br>
  sm := SimpleSwitchMorph new.<br>
  sm openInWorld.<br>
  bm := SimpleButtonMorph new.<br>
  bm openInWorld.<br>
  bm position: bm position + (0@32).<br>
  <br>
  "Three ways of toggling the color of the switch:"<br>
  <br>
  sm toggleState.<br>
  <br>
  bl := [ sm toggleState ].<br>
  bl value.<br>
  <br>
  bm target: bl.<br>
  bm actionSelector: #value.<br>
  bm doButtonAction.<br>
  <br>
  "Two ways of toggling the switch after 1000ms:"<br>
  <br>
  sm addAlarm: #toggleState after: 1000.<br>
  bm addAlarm: #doButtonAction after: 1000.<br>
<br>
but this doesn't:<br>
<br>
  bm2 := SimpleButtonMorph new.<br>
  bm2 target: bl.<br>
  bm2 actionSelector: #value.<br>
  bm2 addAlarm: #doButtonAction after: 1000.<br>
<br>
What is the right way to add an alarm to a morph that is not shown on<br>
the screen? Also, can I create a new invisible morph every time that I<br>
want to run an alarm? Are they going to be garbage collected?<br>
<br>
  Thanks in advance!<br>
    Eduardo Ochs<br>
    <a href="http://anggtwu.net/eev-squeak.html" target="_blank">http://anggtwu.net/eev-squeak.html</a><br>
</div>
<div dir="ltr"><br>
</div>
<br>
<div>
<div dir="ltr">On Tue, 21 Feb 2023 at 02:16, Vanessa Freudenberg <<a href="mailto:vanessa@codefrau.net" target="_blank">vanessa@codefrau.net</a>> wrote:<br>
</div>
<blockquote style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div dir="ltr">
<div>The best way to do this in Morphic is with "alarms":</div>
<div><br>
</div>
<div>    self addAlarm: #changeKeyboardFocus after: 5000.<br>
</div>
<div><br>
</div>
<div>which would execute the morph's changeKeyboardFocus method 5 seconds later.</div>
<div><br>
</div>
<div>The way of sleeping you suggest is possible too but more tricky, since you would have to move your wait code to an extra process to not block the UI process, but then make sure that the actual work is done in the UI process again (Morphic is not multithreaded,
 although Squeak is).</div>
<div><br>
</div>
<div>Vanessa</div>
<br>
<div>
<div dir="ltr">On Mon, Feb 20, 2023 at 8:49 PM Eduardo Ochs <<a href="mailto:eduardoochs@gmail.com" target="_blank">eduardoochs@gmail.com</a>> wrote:<br>
</div>
<blockquote style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div dir="ltr">Hi list,<br>
<br>
a few days ago I asked for help on how to send a "synthetic" keyboard<br>
event to a morph, and Karl Ramberg gave me exactly the right hints in<br>
this thread:<br>
<br>
<a href="http://lists.squeakfoundation.org/pipermail/squeak-dev/2023-February/223473.html" target="_blank">http://lists.squeakfoundation.org/pipermail/squeak-dev/2023-February/223473.html</a><br>
<br>
My code is ready except for documentation and comments - I'll work on<br>
that in the next few days and then post the result here and on the<br>
wiki...<br>
<br>
...but there's a feature that I want to add to it that - again =( -<br>
needs something that I'm not being able to discover by myself. How do<br>
I write a line of code that waits for 5 seconds, sort of like running<br>
"sleep 5" in a shell, and that doesn't block the rest of the system?<br>
If I have that I'll be able to run these two lines in a workspace,<br>
<br>
  self mySleep: 5000.<br>
  kf := self currentHand keyboardFocus.<br>
<br>
switch the keyboard focus to something else by clicking on it, and<br>
then the variable kf will be set to this "something else"...<br>
<br>
Thanks in advance!<br>
  Eduardo Ochs<br>
  <a href="http://anggtwu.net/eev-squeak.html" target="_blank">http://anggtwu.net/eev-squeak.html</a><br>
<div><br>
</div>
</div>
<br>
</blockquote>
</div>
</div>
<br>
</blockquote>
</div>
</div>
<br>
</blockquote>
</div>
<br>
</blockquote>
</div>
</div>
</div>
</div>

<br>
</blockquote></div></div>
<br></div></blockquote></div><br></div></div><br>
</blockquote></div></div>
<br></div></blockquote></div><br></div></div></blockquote>
                                        </div></div>