--- 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 $'
! !