--- a/Menu.st Wed Mar 05 13:24:26 1997 +0100
+++ b/Menu.st Wed Mar 05 17:06:25 1997 +0100
@@ -26,6 +26,25 @@
!Menu methodsFor:'accessing'!
+addItem:aMenuItem value:aValue
+ items isNil ifTrue:[
+ items := OrderedCollection new
+ ].
+ items add:aMenuItem.
+ aMenuItem value:aValue
+!
+
+addItemGroup:aGroup values:values
+ groupSizes isNil ifTrue:[
+ groupSizes := OrderedCollection new
+ ].
+ groupSizes add:items size.
+
+ aGroup with:values do:[:item :value |
+ self addItem:item value:value
+ ].
+!
+
labels
"return a collection of labels from my items"
@@ -34,6 +53,29 @@
"Created: 25.2.1997 / 19:47:53 / cg"
!
+lines
+ "Answer the indexes of the menu items that are the last menu item in their group (except the very last)."
+
+ | lines |
+ groupSizes size <= 1 ifTrue: [^Array new].
+ lines := Array new: groupSizes size - 1.
+ lines at: 1 put: groupSizes first.
+ 2 to: groupSizes size -1 do:
+ [:i |
+ lines at: i put: (lines at: i - 1) + (groupSizes at: i)].
+ ^lines
+
+
+!
+
+menuItemAt:index
+ ^ items at:index
+!
+
+menuItems
+ ^ items
+!
+
menuItems:aCollectionOfMenuItems groupsSizes:sizes values:values
|idx newItems nItems|
@@ -194,6 +236,19 @@
"
"Modified: 25.2.1997 / 21:05:06 / cg"
+!
+
+literalArrayEncoding
+ "return myself encoded as a literal array"
+
+ |coll|
+
+ coll := OrderedCollection new.
+ coll add:#Menu.
+ coll add:(items literalArrayEncoding).
+ coll add:(groupSizes literalArrayEncoding).
+ coll add:nil.
+ ^ coll asArray
! !
!Menu methodsFor:'startup'!
@@ -271,5 +326,5 @@
!Menu class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libview2/Menu.st,v 1.5 1997-02-26 09:42:03 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libview2/Menu.st,v 1.6 1997-03-05 16:06:25 ca Exp $'
! !