--- a/MenuEditor.st Thu Apr 24 17:12:15 2003 +0200
+++ b/MenuEditor.st Fri Apr 25 01:09:45 2003 +0200
@@ -1035,6 +1035,13 @@
#hideMenuOnActivated: false
#indication: #redefineAspectMethodsChannel
)
+ #(#MenuItem
+ #activeHelpKey: #settingsRedefineAspectMethods
+ #label: 'AutoAccept on Selection-Change'
+ #translateLabel: true
+ #hideMenuOnActivated: false
+ #indication: #autoAcceptOnSelectionChange
+ )
)
nil
nil
@@ -1506,6 +1513,10 @@
!MenuEditor methodsFor:'aspects'!
+autoAcceptOnSelectionChange
+ ^ builder valueAspectFor:#autoAcceptOnSelectionChange initialValue:true
+!
+
canCreateDelayedMenuChannel
"boolean holder, true if the current selected item accepts a delayed menu
"
@@ -1717,11 +1728,19 @@
!
update:something with:aParameter from:changedObject
+ |lbl|
+
notifyDisabledCounter ~~ 0 ifTrue:[ ^ self ].
changedObject == selectionHolder ifTrue:[ ^ self selectionChanged ].
changedObject == tabHolder ifTrue:[ ^ self tabChanged ].
+ changedObject == self autoAcceptOnSelectionChange ifTrue:[
+ lbl := changedObject value ifTrue:['Apply'] ifFalse:['OK'].
+ (builder componentAt:'okButton') label:(resources string:lbl).
+ ^ self
+ ].
+
super update:something with:aParameter from:changedObject
!
@@ -2093,6 +2112,15 @@
aNoteBook tabLabelInset:16@4.
!
+postBuildWith:aBuilder
+ super postBuildWith: aBuilder.
+
+ self autoAcceptOnSelectionChange addDependent:self.
+ self autoAcceptOnSelectionChange value ifTrue:[
+ (builder componentAt:'okButton') label:(resources string:'Apply')
+ ].
+!
+
postOpenWith:aBuilder
"reset keyboardProcessor for menuBar
"
@@ -2238,18 +2266,27 @@
"called whenever the selection changed; test whether
current item is not modified ....
"
- |oldSelectedItem newSelectedItem|
+ |oldSelectedItem newSelectedItem anythingChanged|
self valueOfEnablingCommitButtons value ifFalse:[
- ^ true
+ ^ true
].
oldSelectedItem := self selectedItem.
oldSelectedItem ifNil:[^ true].
newSelectedItem := listOfItems at:anIndex ifAbsent:nil.
oldSelectedItem == newSelectedItem ifTrue:[
- ^ true
+ ^ true
].
+
+ anythingChanged := self valueOfEnablingCommitButtons value.
+ anythingChanged ifTrue:[
+ self autoAcceptOnSelectionChange value ifTrue:[
+ self accept.
+ ^ true
+ ].
+ ].
+
^ self askForItemModification
!