MenuView.st
changeset 95 7535cfca9509
parent 87 2c6ab478466a
child 97 cbf495fe3b64
--- 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