#FEATURE by cg
authorClaus Gittinger <cg@exept.de>
Mon, 10 Jun 2019 14:30:52 +0200
changeset 6602 14e5bd6433ee
parent 6601 4ccac038bf9b
child 6603 1f084ea9212d
#FEATURE by cg class: DialogBox class added: #withAdditionalOKButtonLabeled:action:andOKButtonLabeled:action:do: comment/format in: #withAdditionalOKButtonLabeled:action:do:
DialogBox.st
--- a/DialogBox.st	Sat Jun 08 17:37:34 2019 +0200
+++ b/DialogBox.st	Mon Jun 10 14:30:52 2019 +0200
@@ -6622,20 +6622,57 @@
     "Modified: / 20-08-2018 / 11:46:31 / Claus Gittinger"
 !
 
-withAdditionalOKButtonLabeled:aString action:action do:boxOpeningBlock
+withAdditionalOKButtonLabeled:label1 action:action1 
+           andOKButtonLabeled:label2 action:action2 do:boxOpeningBlock
     "launch a Dialog. 
-     Add an additional ok-like button to the bottom panel"
+     Add two additional ok-like buttons to the bottom panel.
+     These will invoke the corresponding actions before closing the box with ok"
+
+    ^ self 
+        modifyingBoxWith:[:box |
+            |b1 b2|
+
+            (box isKindOf:DialogBox) ifTrue:[
+                b1 := Button label:label1 action:[action1 value. box okPressed].
+                box addButton:b1 after:nil.
+                b2 := Button label:label2 action:[action2 value. box okPressed].
+                box addButton:b2 after:nil.
+                box forceResize.
+            ] ifFalse:[
+                b1 := Button label:label1 action:[action1 value. box application doAccept].
+                b2 := Button label:label2 action:[action2 value. box application doAccept].
+                box application addButton:b1; addButton:b2.
+            ].    
+        ] 
+        do:boxOpeningBlock.
+
+    "
+     |h|
+     h := true asValue.
+     Dialog 
+        withAdditionalOKButtonLabeled:'Oh,yes' action:[Transcript flash]
+        andOKButtonLabeled:'Oh,no' action:[Transcript flash]
+        do:[ Dialog confirm:'some question' ].
+    "
+
+    "Created: / 10-06-2019 / 14:29:32 / Claus Gittinger"
+!
+
+withAdditionalOKButtonLabeled:label1 action:action1 do:boxOpeningBlock
+    "launch a Dialog. 
+     Add an additional ok-like button to the bottom panel.
+     This will invoke the corresponding actions before closing the box with ok"
 
     ^ self 
         modifyingBoxWith:[:box |
             |b|
 
             (box isKindOf:DialogBox) ifTrue:[
-                b := Button label:aString action:[action value. box okPressed].
+                b := Button label:label1 action:[action1 value. box okPressed].
                 box addButton:b after:nil.
                 box forceResize.
             ] ifFalse:[
-                b := Button label:aString action:[action value. box application doAccept].
+                b := Button label:label1 action:[action1 value. box application doAccept].
                 box application addButton:b.
             ].    
         ] 
@@ -6652,6 +6689,7 @@
 
     "Created: / 01-07-2018 / 09:38:09 / Claus Gittinger"
     "Modified: / 13-09-2018 / 15:06:54 / Claus Gittinger"
+    "Modified (comment): / 10-06-2019 / 14:30:35 / Claus Gittinger"
 !
 
 withCheckBoxFor:checkModel labelled:checkLabel do:boxOpeningBlock