# HG changeset patch # User Claus Gittinger # Date 1051225785 -7200 # Node ID 548d690e780ff38cf6f44eedd7867612613aa568 # Parent 4d81ff7b34122e8ed9e897501e9c9ef408df0937 auto-accept on selection change diff -r 4d81ff7b3412 -r 548d690e780f MenuEditor.st --- 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 !