diff -r c365ecae6727 -r f1bdf4e5e0b4 UIPainter.st --- a/UIPainter.st Sat Mar 09 00:55:20 2013 +0100 +++ b/UIPainter.st Sun Mar 10 17:57:46 2013 +0100 @@ -3334,7 +3334,19 @@ ! openEditMenu - "opens a Menu Editor on current widget" + "opens a Menu Editor on current widget for the standard menu + (accessed via #menu or #menuSelector)" + + ^ self + openEditMenuFor:#menu + and:#menuSelector +! + +openEditMenuFor:menuSelector and:menuSelectorSelector + "opens a Menu Editor on the current widget. + The arguments menuSelector (typically: #menu) + and menuSelectorSelector (typically: #menuSelector) can be passed in + for widgets with a secondary menu (with different selectors)" |cls selectorOrMenu editor selectedSpec windowSpec holder| @@ -3350,9 +3362,9 @@ windowSpec := self specTool specification. self isEditingSpecOnly ifTrue:[ - selectorOrMenu := windowSpec menu + selectorOrMenu := windowSpec perform:menuSelector ] ifFalse:[ - (selectorOrMenu := windowSpec menuSelector) notNil ifTrue:[ + (selectorOrMenu := (windowSpec perform:menuSelectorSelector)) notNil ifTrue:[ selectorOrMenu := selectorOrMenu asSymbol ] ifFalse:[ "/ cg: q&d hack ... @@ -3378,13 +3390,13 @@ (self isEditingSpecOnly or:[selectorOrMenu class == Menu]) ifTrue: [ editor openModalOnMenu:(selectorOrMenu). editor hasSaved ifTrue:[ - windowSpec menu:(editor savedSpec). + windowSpec perform:(menuSelector,':')asSymbol with:(editor savedSpec). self accept. ]. ] ifFalse: [ editor openModalOnClass:cls andSelector:selectorOrMenu. editor hasSaved ifTrue:[ - holder := self specTool aspectFor:#menuSelector. + holder := self specTool aspectFor:menuSelector. holder value:(editor specSelector). self accept. ].