class: UIPainter
authorClaus Gittinger <cg@exept.de>
Sun, 10 Mar 2013 17:57:46 +0100
changeset 2967 f1bdf4e5e0b4
parent 2966 c365ecae6727
child 2968 ceb6bb9078db
class: UIPainter added: #openEditMenuFor:and: changed: #openEditMenu
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.
         ].