Menu.st
changeset 1986 f819e439d917
parent 1782 6a40c04cda8c
child 2017 0cdc1c537fa0
--- a/Menu.st	Mon May 24 19:45:01 2004 +0200
+++ b/Menu.st	Fri Jun 04 14:37:58 2004 +0200
@@ -226,6 +226,10 @@
     groupSizes := something.
 !
 
+items
+    ^ items
+!
+
 labelAt:anIndex
     "gets the label of the menu item at the given index or nil
     "
@@ -481,18 +485,32 @@
 findGuiResourcesIn:aResourceContainerOrApplication rememberResourcesIn:aValueHolderOrNil
     "setup a resource owner
     "
-    aResourceContainerOrApplication notNil ifTrue:[
-        receiver isNil ifTrue:[
-            receiver := aResourceContainerOrApplication
+    |resolvedItems|
+
+    receiver isNil ifTrue:[
+        receiver := aResourceContainerOrApplication
+    ].
+    items isEmptyOrNil ifTrue:[^ self].
+
+    resolvedItems := OrderedCollection new.
+
+    items do:[:anItem |
+        anItem isMenuSlice ifTrue:[ |resItems|
+            resItems := anItem resolveSliceMenuItemsIn:aResourceContainerOrApplication
+                               rememberResourcesIn:aValueHolderOrNil.
+
+            resItems notEmptyOrNil ifTrue:[
+                resolvedItems addAll:resItems.
+            ]
+        ] ifFalse:[
+            anItem 
+                findGuiResourcesIn:aResourceContainerOrApplication 
+                rememberResourcesIn:aValueHolderOrNil.
+
+            resolvedItems add:anItem.
         ].
-        items notNil ifTrue:[
-            items do:[:anItem | 
-                anItem 
-                    findGuiResourcesIn:aResourceContainerOrApplication 
-                    rememberResourcesIn:aValueHolderOrNil
-            ]
-        ]
-    ]
+    ].
+    items := resolvedItems.
 ! !
 
 !Menu methodsFor:'adding & removing'!
@@ -1054,5 +1072,5 @@
 !Menu class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libview2/Menu.st,v 1.57 2003-05-26 11:30:33 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libview2/Menu.st,v 1.58 2004-06-04 12:37:52 ca Exp $'
 ! !