<div dir="ltr"><div>That reminds me the post from Travis Griggs, citing ideas from Vassili Bykov<br><br><a href="http://www.cincomsmalltalk.com/userblogs/travis/blogView?showComments=true&printTitle=Cursor_consider_showWhile:_[Harmful]&entry=3432339015">http://www.cincomsmalltalk.com/userblogs/travis/blogView?showComments=true&printTitle=Cursor_consider_showWhile:_[Harmful]&entry=3432339015</a><br>
<br></div>And I think that Juan's implementation is clearly in this spirit, so +1<br></div><div class="gmail_extra"><br><br><div class="gmail_quote">2013/6/25 H. Hirzel <span dir="ltr"><<a href="mailto:hannes.hirzel@gmail.com" target="_blank">hannes.hirzel@gmail.com</a>></span><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="HOEnZb"><div class="h5">On 6/25/13, David T. Lewis <<a href="mailto:lewis@mail.msen.com">lewis@mail.msen.com</a>> wrote:<br>
> On Tue, Jun 25, 2013 at 07:16:03AM -0300, Juan Vuletich (mail lists) wrote:<br>
>> Quoting Frank Shearar <<a href="mailto:frank.shearar@gmail.com">frank.shearar@gmail.com</a>>:<br>
>><br>
>> >...<br>
>> >I realise that I'm advocating the removal of a host of Graphics<br>
>> >dependencies only to replace them with ToolBuilder-Kernel<br>
>> >dependencies. I'd prefer to not have the latter either, but it's a<br>
>> >lesser of two evils.<br>
>> ><br>
>> >...<br>
>> >frank<br>
>><br>
>> What about my suggestion? I mean, doesn't it deserve a comment?<br>
>><br>
><br>
> Yes indeed it does. I have not been following this discussion closely, but<br>
> I'll comment anyway :-)<br>
><br>
> On Mon, Jun 24, 2013 at 10:28:31AM -0300, Juan Vuletich (mail lists) wrote:<br>
>> I recently did something better fo Cuis. The idea is to let Morphic<br>
>> handle that. If Morphic frame rate drops below some threshold, show<br>
>> the wait cursor. This way, there are no 'bad' references to UI from<br>
>> non-UI code, and you only get the wait cursor if appropriate (for<br>
>> instance, not if the very same code is run on a forked process). It is<br>
>> trivial to add protocol to set the "wait cursor" to be used. This<br>
>> allowed me to clean a lot of methods.<br>
>><br>
>> It is in update #1704 at <a href="https://github.com/jvuletich/Cuis" target="_blank">https://github.com/jvuletich/Cuis</a> .<br>
><br>
> This sounds like like a really elegant approach, because it does not<br>
> require advance knowledge that some operation is likely to take a long<br>
> time, and it will do the right thing on both slow and fast hardware.<br>
><br>
> It does however seem to depend on the Morphic update mechanism, so it<br>
> may not translate well to other UI styles. (I look to MVC to keep us<br>
> honest in these matters, but you can imagine a SeasideProject in addition<br>
> to MorphicProject and MVCProject, and the same principle applies.)<br>
><br>
> On Mon, Jun 24, 2013 at 09:12:08PM -0500, Chris Muller wrote:<br>
>> After more thought, I should rebut myself for sounding so harsh.<br>
>> Frank, are Cursor showWhile:, et al. the _sole_ cause of dependency on<br>
>> Graphics from many packages? If so, then I do understand the interest<br>
>> in wanting to soften those dependencies. If we're going to extend<br>
>> "UIManager" I think we should call it something generic to a UI that<br>
>> may not even support a cursor:<br>
>><br>
>> UIManager default indicateBusyWhile: [ ... ]<br>
>> UIManager default indicateReadingWhile: [ ... ]<br>
>> etc.<br>
>><br>
><br>
> This sounds like a promising approach. It is easy to read and the intent<br>
> is clear. It seems like it would provide a mechinism for using an optimal<br>
> implementation for various types of projects. For example, an MVCProject<br>
> might use the traditional "Cursor wait showWhile:" idiom, and a<br>
> MorphicProject<br>
> could use the new Cuis approach. Meanwhile if someone was (finally!)<br>
> implementing SeasideProject, they could figure out an implementation that<br>
> makes sense for a web app.<br>
><br>
> Dave<br>
<br>
</div></div>+ 1<br>
<br>
><br>
><br>
<br>
</blockquote></div><br></div>