--- a/Menu.st Wed Apr 15 13:31:52 1998 +0200
+++ b/Menu.st Sun Apr 19 17:17:35 1998 +0200
@@ -37,48 +37,48 @@
nLabel := arrayOfString size.
valueArrayOrNil isNil ifTrue:[
- (valueArray := arrayOfString isEmpty) ifTrue: [
- valueArray := #()
- ] ifFalse:[
- valueArray := (1 to:nLabel)
- ]
+ (valueArray := arrayOfString isEmpty) ifTrue: [
+ valueArray := #()
+ ] ifFalse:[
+ valueArray := (1 to:nLabel)
+ ]
] ifFalse:[
- valueArray := valueArrayOrNil
+ valueArray := valueArrayOrNil
].
nLabel ~~ valueArray size ifTrue: [
- ^ self error: 'illegal menu combination'
+ ^ self error: 'illegal menu combination'
].
menuItems := Array new:nLabel.
1 to:nLabel do:[:i |
- |mi v|
+ |mi v|
- mi := MenuItem labeled: (arrayOfString at:i) asString.
- v := valueArray at: i.
- (v isKindOf: Menu) ifTrue: [mi submenu: v].
- menuItems at: i put: mi
+ mi := MenuItem labeled: (arrayOfString at:i) asString.
+ v := valueArray at: i.
+ (v isKindOf: Menu) ifTrue: [mi submenu: v].
+ menuItems at: i put: mi
].
(linesArray == nil or:[linesArray isEmpty]) ifTrue:[
- groupLengths := (menuItems isEmpty)
- ifTrue: [Array new: 0]
- ifFalse: [Array with: menuItems size]
+ groupLengths := (menuItems isEmpty)
+ ifTrue: [Array new: 0]
+ ifFalse: [Array with: menuItems size]
] ifFalse:[
- groupLengths := Array new: linesArray size + 1.
- groupLengths at: 1 put: linesArray first.
- 2 to: linesArray size do: [:i |
- groupLengths at: i put: (linesArray at: i) - (linesArray at: i - 1)
- ].
- groupLengths at: groupLengths size put: menuItems size - linesArray last
+ groupLengths := Array new: linesArray size + 1.
+ groupLengths at: 1 put: linesArray first.
+ 2 to: linesArray size do: [:i |
+ groupLengths at: i put: (linesArray at: i) - (linesArray at: i - 1)
+ ].
+ groupLengths at: groupLengths size put: menuItems size - linesArray last.
].
^ self new
- menuItems: menuItems
- menuItemGroups: groupLengths
- values: valueArray
+ menuItems: menuItems
+ menuItemGroups: groupLengths
+ values: valueArray
- "Modified: / 31.10.1997 / 03:19:14 / cg"
+ "Modified: / 19.4.1998 / 11:30:18 / cg"
!
labelList:arrayOfGroupStrings values:valueArrayOrNil
@@ -304,14 +304,22 @@
!
menuItems:aCollectionOfMenuItems menuItemGroups:sizes values:values
+ |n|
+
items := aCollectionOfMenuItems.
groupSizes := sizes.
+ sizes size > 0 ifTrue:[
+ n := sizes inject:0 into:[:sumSoFar :this | sumSoFar + this].
+ n = items size ifTrue:[
+ groupSizes := sizes copyWithoutLast:1
+ ]
+ ].
values notNil ifTrue:[
- items with:values do:[:anItem :aValue |anItem value:aValue]
+ items with:values do:[:anItem :aValue |anItem value:aValue]
].
- "Modified: 20.6.1997 / 10:45:30 / cg"
+ "Modified: / 19.4.1998 / 11:47:34 / cg"
!
numberOfItems
@@ -760,5 +768,5 @@
!Menu class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libview2/Menu.st,v 1.26 1998-02-02 12:30:22 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libview2/Menu.st,v 1.27 1998-04-19 15:17:35 cg Exp $'
! !