Menu.st
changeset 2494 994b030ae562
parent 2433 632122b652eb
child 2584 5b5c3dda9a4b
--- a/Menu.st	Thu Jun 05 17:30:14 2008 +0200
+++ b/Menu.st	Thu Jun 05 19:13:20 2008 +0200
@@ -856,6 +856,21 @@
 
 !Menu methodsFor:'enumerating'!
 
+allItemsDetect:aOneArgBlock ifNone:exceptionalValue
+    "find an element amongst each item and submenu items"
+
+    self itemsDo:[:anItem|
+        |sub subItem|
+
+        (aOneArgBlock value:anItem) ifTrue:[^ anItem].
+        (sub := anItem submenu) notNil ifTrue:[
+            subItem := sub allItemsDetect:aOneArgBlock ifNone:nil.
+            subItem notNil ifTrue:[^ subItem].
+        ]
+    ].
+    ^ exceptionalValue value
+!
+
 allItemsDo:aOneArgBlock
     "evaluate block on each item and submenu items
     "
@@ -1150,5 +1165,5 @@
 !Menu class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libview2/Menu.st,v 1.69 2008-04-21 16:03:55 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libview2/Menu.st,v 1.70 2008-06-05 17:13:20 cg Exp $'
 ! !