<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Exchange Server">
<!-- converted from text --><style><!-- .EmailQuote { margin-left: 1pt; padding-left: 4pt; border-left: #800000 2px solid; } --></style>
</head>
<body>
<meta content="text/html; charset=UTF-8">
<style type="text/css" style="">
<!--
p
        {margin-top:0;
        margin-bottom:0}
-->
</style>
<div dir="ltr">
<div id="x_divtagdefaultwrapper" dir="ltr" style="font-size:12pt; color:#000000; font-family:Calibri,Helvetica,sans-serif">
<p>Hi Marcel,</p>
<p><br>
</p>
<p>> <span style="font-size:12pt">For text requests, fall back to the most simple case so that ui managers do not have to implement all cases. For example, our DummyUIManager did forget one already and nobody noticed.</span></p>
<div><br>
</div>
<div>This is probably related to <span>The Inbox: ToolBuilder-Kernel-ct.135?</span></div>
<div><span><br>
</span></div>
<div><span>> </span><span style="font-size:12pt">I suspect that it is not possible to return "nil" by default because there are many cases that rely on a string being return in any case.</span><span>
<div><br>
</div>
<div>Hm, but this still feels wrong. Did we ever document that '' implies "Cancel"? Can't we just try to return nil and update all senders if necessary? (It would probably better to do this refactoring together with UserNotification if we ever introduce this.
 I cannot find the link to the full discussion at the moment.)</div>
<div><br>
</div>
<div>Best,</div>
<div>Christoph</div>
</span></div>
<p></p>
<div id="x_Signature">
<div id="x_divtagdefaultwrapper" dir="ltr" style="font-size:12pt; color:rgb(0,0,0); font-family:Calibri,Helvetica,sans-serif,EmojiFont,"Apple Color Emoji","Segoe UI Emoji",NotoColorEmoji,"Segoe UI Symbol","Android Emoji",EmojiSymbols">
<div name="x_divtagdefaultwrapper" style="font-family:Calibri,Arial,Helvetica,sans-serif; font-size:; margin:0">
<div><font size="2" color="#808080"></font></div>
</div>
</div>
</div>
</div>
<hr tabindex="-1" style="display:inline-block; width:98%">
<div id="x_divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" color="#000000" style="font-size:11pt"><b>Von:</b> Squeak-dev <squeak-dev-bounces@lists.squeakfoundation.org> im Auftrag von commits@source.squeak.org <commits@source.squeak.org><br>
<b>Gesendet:</b> Mittwoch, 15. April 2020 15:55:51<br>
<b>An:</b> squeak-dev@lists.squeakfoundation.org; packages@lists.squeakfoundation.org<br>
<b>Betreff:</b> [squeak-dev] The Trunk: ToolBuilder-Kernel-mt.138.mcz</font>
<div> </div>
</div>
</div>
<font size="2"><span style="font-size:10pt;">
<div class="PlainText">Marcel Taeumel uploaded a new version of ToolBuilder-Kernel to project The Trunk:<br>
<a href="http://source.squeak.org/trunk/ToolBuilder-Kernel-mt.138.mcz">http://source.squeak.org/trunk/ToolBuilder-Kernel-mt.138.mcz</a><br>
<br>
==================== Summary ====================<br>
<br>
Name: ToolBuilder-Kernel-mt.138<br>
Author: mt<br>
Time: 15 April 2020, 3:55:51.006534 pm<br>
UUID: 8d0776ff-7711-a74c-ba35-ec3420f47184<br>
Ancestors: ToolBuilder-Kernel-mt.137<br>
<br>
For text requests, fall back to the most simple case so that ui managers do not have to implement all cases. For example, our DummyUIManager did forget one already and nobody noticed.<br>
<br>
Adds hook to specify the cancel answer so that applications can actually work with cancellation just like in the confirmation dialogs.<br>
<br>
I suspect that it is not possible to return "nil" by default because there are many cases that rely on a string being return in any case.<br>
<br>
=============== Diff against ToolBuilder-Kernel-mt.137 ===============<br>
<br>
Item was changed:<br>
  ----- Method: UIManager>>request:initialAnswer: (in category 'ui requests - text') -----<br>
  request: queryString initialAnswer: defaultAnswer <br>
+        "Create an instance of me whose question is queryString with the given initial answer. Answer the  string the user accepts. Answer the empty string if the user cancels."<br>
+        <br>
+        ^ self subclassResponsibility!<br>
-        "Create an instance of me whose question is queryString with the given <br>
-        initial answer. Invoke it centered at the given point, and answer the <br>
-        string the user accepts. Answer the empty string if the user cancels."<br>
-        ^self subclassResponsibility!<br>
<br>
Item was changed:<br>
  ----- Method: UIManager>>request:initialAnswer:centerAt: (in category 'ui requests - text') -----<br>
  request: queryString initialAnswer: defaultAnswer centerAt: aPoint <br>
+        "Create an instance of me whose question is queryString with the given initial answer. Invoke it centered at the given point, and answer the    string the user accepts. Answer the empty string if the user cancels."<br>
-        "Create an instance of me whose question is queryString with the given<br>
-        initial answer. Invoke it centered at the given point, and answer the<br>
-        string the user accepts. Answer the empty string if the user cancels."<br>
  <br>
+        ^ self request: queryString initialAnswer: defaultAnswer!<br>
-        ^self subclassResponsibility!<br>
<br>
Item was added:<br>
+ ----- Method: UIManager>>request:initialAnswer:onCancelReturn: (in category 'ui requests - text') -----<br>
+ request: queryString initialAnswer: defaultAnswer onCancelReturn: cancelResponse<br>
+        "Create an instance of me whose question is queryString with the given initial answer. Answer the string the user accepts. Answer cancelResponse if the user cancels."<br>
+ <br>
+        ^ self request: queryString initialAnswer: defaultAnswer!<br>
<br>
<br>
</div>
</span></font>
</body>
</html>