Hi 

I got a bug with menu (I'm trying to reproduce it but this is a real bug) 

because in 

interpretRegistration: aRegistration 
        item enabled
                        ifNil: [ node enabled: boolean not ]
                        ifNotNil: [:boolean | node enabled: boolean ].  


I will not comment on the fact that enabled should return a boolean 
but the problem is that node does not understand enabled: 


item enabled
        ifNil: [ node enabledBlock: item  enabledBlock ]
        node is a MenuRegistration and items is 
PragmaMenuAndShortcutRegistrationItem
        ifNotNil: [:boolean | node enabled: boolean ].  

And not of course does not understand enabledBlock:



interpretRegistration: aRegistration 
        | root |
        root := MenuRegistration owner: self.
        aRegistration items do: [:item || node |
                        node := item group
                                        ifNil: [ root item: item item ]
                                        ifNotNil: [:grp | root group: grp ].
                        item with
                                ifNotNil: [:block || old |
                                        old := aRegistration currentRoot.
                                        aRegistration currentRoot: node name.
                                        [ node with: block ] ensure: [ 
aRegistration currentRoot: old ]]
                                ifNil: [
                                        item action
                                                ifNil: [ 
                                                        node 
                                                                target: item 
target;
                                                                arguments: item 
arguments;
                                                                selector: item 
selector ]
                                                ifNotNil:[ 
                                                        node 
                                                                action: item 
action ]].
                        node
                                keyText: item keyText;
                                help: item help;
                                icon: item icon;
                                order: item order;
                                parent: item parent.
                        item enabled
                                ifNil: [ node ]
                                ifNotNil: [:boolean | node enabled: boolean ].  
                        item label
                                ifNotNil: [ node label: item label ].
                        item default ifNotNil: [ :d |
                                node label: node label, ' (', d asString, ')'].
                        item isWithSeparatorAfter
                                ifTrue: [ node withSeparatorAfter ]]

Reply via email to