--- a/MenuView.st Wed Feb 22 04:41:31 1995 +0100
+++ b/MenuView.st Mon Feb 27 11:41:57 1995 +0100
@@ -32,7 +32,7 @@
COPYRIGHT (c) 1989 by Claus Gittinger
All Rights Reserved
-$Header: /cvs/stx/stx/libwidg/MenuView.st,v 1.17 1995-02-16 16:31:44 claus Exp $
+$Header: /cvs/stx/stx/libwidg/MenuView.st,v 1.18 1995-02-27 10:39:33 claus Exp $
'!
!MenuView class methodsFor:'documentation'!
@@ -53,7 +53,7 @@
version
"
-$Header: /cvs/stx/stx/libwidg/MenuView.st,v 1.17 1995-02-16 16:31:44 claus Exp $
+$Header: /cvs/stx/stx/libwidg/MenuView.st,v 1.18 1995-02-27 10:39:33 claus Exp $
"
!
@@ -343,7 +343,6 @@
initEvents
super initEvents.
self enableLeaveEvents.
- self enableButtonMotionEvents.
windowGroup notNil ifTrue:[
windowGroup sensor compressMotionEvents:true
]
@@ -510,7 +509,39 @@
addLabel:aLabel selector:aSelector after:aLabelOrSelectorOrNumber
"insert another label/selector pair at some place.
Being very friendly here, allowing label-string, selector or numeric
- index for the argument aLabelOrSelectorOrNumber"
+ index for the argument aLabelOrSelectorOrNumber.
+
+ To be independent of the entries label, we recommend you use the selector
+ as index; in systems which translate strings for national variants,
+ this makes your code easier to maintain."
+
+ ^ self addLabel:aLabel
+ selector:aSelector
+ before:(self indexOf:aLabelOrSelectorOrNumber) + 1
+ "
+ |v1 v2 v3 v4|
+
+ v1 := CodeView new realize.
+
+ v2 := CodeView new realize.
+ v2 middleButtonMenu menuView addLabel:'new entry' selector:#foo after:'paste'.
+
+ v3 := CodeView new realize.
+ v3 middleButtonMenu menuView addLabel:'new entry' selector:#foo after:#others.
+
+ v4 := CodeView new realize.
+ v4 middleButtonMenu menuView addLabel:'new entry' selector:#foo after:1.
+ "
+!
+
+addLabel:aLabel selector:aSelector before:aLabelOrSelectorOrNumber
+ "insert another label/selector pair at some place.
+ Being very friendly here, allowing label-string, selector or numeric
+ index for the argument aLabelOrSelectorOrNumber.
+
+ To be independent of the entries label, we recommend you use the selector
+ as index; in systems which translate strings for national variants,
+ this makes your code easier to maintain."
|idx|
@@ -521,75 +552,41 @@
be user friendly - allow both label or selector
to be passed
"
- aLabelOrSelectorOrNumber isInteger ifTrue:[
- idx := aLabelOrSelectorOrNumber
- ] ifFalse:[
- idx := list indexOf:aLabelOrSelectorOrNumber ifAbsent:[selectors indexOf:aLabelOrSelectorOrNumber].
- ].
- (idx between:0 and:list size) ifFalse:[
- "add to end"
- ^ self addLabel:aLabel selector:aSelector
- ].
-
- list := list asOrderedCollection add:aLabel beforeIndex:(idx + 1).
- selectors := selectors asOrderedCollection add:aSelector beforeIndex:(idx + 1).
- enableFlags := enableFlags asOrderedCollection add:true beforeIndex:(idx + 1).
- subMenus notNil ifTrue:[
- subMenus := subMenus asOrderedCollection add:nil beforeIndex:(idx + 1).
- ].
- args notNil ifTrue:[
- args := args asOrderedCollection add:nil beforeIndex:(idx + 1).
- ].
- self recomputeSize
-
- "
- |v|
- CodeView new realize.
- v := CodeView new realize.
- v middleButtonMenu menuView addLabel:'new entry' selector:#foo after:'paste'.
- "
-!
-
-addLabel:aLabel selector:aSelector before:aLabelOrSelectorOrNumber
- "insert another label/selector pair at some place.
- Being very friendly here, allowing label-string, selector or numeric
- index for the argument aLabelOrSelectorOrNumber"
-
- |idx|
-
- list isNil ifTrue:[
- ^ self addLabel:aLabel selector:aSelector
- ].
- "
- be user friendly - allow both label or selector
- to be passed
- "
- aLabelOrSelectorOrNumber isInteger ifTrue:[
- idx := aLabelOrSelectorOrNumber
- ] ifFalse:[
- idx := list indexOf:aLabelOrSelectorOrNumber ifAbsent:[selectors indexOf:aLabelOrSelectorOrNumber].
- ].
+ idx := self indexOf:aLabelOrSelectorOrNumber.
(idx between:1 and:list size) ifFalse:[
"add to end"
^ self addLabel:aLabel selector:aSelector
].
- list := list asOrderedCollection add:aLabel beforeIndex:idx.
- selectors := selectors asOrderedCollection add:aSelector beforeIndex:idx.
- enableFlags := enableFlags asOrderedCollection add:true beforeIndex:idx.
+ list := list asOrderedCollection.
+ list add:aLabel beforeIndex:idx.
+ selectors := selectors asOrderedCollection.
+ selectors add:aSelector beforeIndex:idx.
+ enableFlags := enableFlags asOrderedCollection.
+ enableFlags add:true beforeIndex:idx.
subMenus notNil ifTrue:[
- subMenus := subMenus asOrderedCollection add:nil beforeIndex:idx.
+ subMenus := subMenus asOrderedCollection.
+ subMenus add:nil beforeIndex:idx.
].
args notNil ifTrue:[
- args := args asOrderedCollection add:nil beforeIndex:idx.
+ args := args asOrderedCollection.
+ args add:nil beforeIndex:idx.
].
self recomputeSize
"
- |v|
- CodeView new realize.
- v := CodeView new realize.
- v middleButtonMenu menuView addLabel:'new entry' selector:#foo before:'paste'.
+ |v1 v2 v3 v4|
+
+ v1 := CodeView new realize.
+
+ v2 := CodeView new realize.
+ v2 middleButtonMenu menuView addLabel:'new entry' selector:#foo before:'paste'.
+
+ v3 := CodeView new realize.
+ v3 middleButtonMenu menuView addLabel:'new entry' selector:#foo before:#again.
+
+ v4 := CodeView new realize.
+ v4 middleButtonMenu menuView addLabel:'new entry' selector:#foo before:1.
"
!
@@ -613,10 +610,10 @@
"return the index of the label named:aName or , if its a symbol
the index in the selector list"
- (indexOrName isMemberOf:Symbol) ifTrue:[
+ indexOrName isSymbol ifTrue:[
^ selectors indexOf:indexOrName
].
- (indexOrName isString) ifTrue:[
+ indexOrName isString ifTrue:[
^ list indexOf:indexOrName
].
^ indexOrName
@@ -1358,9 +1355,7 @@
"
ST-80 style model notification
"
- (model notNil and:[changeSymbol notNil]) ifTrue:[
- model perform:changeSymbol with:val
- ].
+ self sendChangeMessageWith:val.
"
either action-block or selectors-array-style