--- a/UIPainter.st Wed Jun 17 14:20:27 2009 +0200
+++ b/UIPainter.st Thu Jul 09 20:07:21 2009 +0200
@@ -3319,45 +3319,58 @@
openEditMenu
"opens a Menu Editor on current widget"
- |cls selectorOrMenu editor selectedSpec spec holder|
-
- (cls := self resolveName:specClassName) isNil ifTrue:[
- self askForSaving ifTrue:[cls := self resolveName:specClassName].
- ].
- cls isNil ifTrue:[^ self].
+ |cls selectorOrMenu editor selectedSpec windowSpec holder|
+
+ self isEditingSpecOnly ifFalse:[
+ "/ normal mode
+ (cls := self resolveName:specClassName) isNil ifTrue:[
+ self askForSaving ifTrue:[cls := self resolveName:specClassName].
+ ].
+ cls isNil ifTrue:[^ self].
+ ].
self acceptOrIgnoreSectionModification.
- spec := self specTool specification.
-
- (selectorOrMenu := spec menuSelector) notNil ifTrue:[
- selectorOrMenu := selectorOrMenu asSymbol
+ windowSpec := self specTool specification.
+
+ self isEditingSpecOnly ifTrue:[
+ selectorOrMenu := windowSpec menu
] ifFalse:[
- "/ cg: q&d hack ...
- selectorOrMenu := nil.
-
- (selectedSpec := treeView propertySelected) notNil ifTrue:[
- Error handle:[:ex |
- selectorOrMenu := nil.
- ] do:[
- selectorOrMenu := selectedSpec view asMenu.
- ]
+ (selectorOrMenu := windowSpec menuSelector) notNil ifTrue:[
+ selectorOrMenu := selectorOrMenu asSymbol
+ ] ifFalse:[
+ "/ cg: q&d hack ...
+ selectorOrMenu := nil.
+
+ (selectedSpec := treeView propertySelected) notNil ifTrue:[
+ Error handle:[:ex |
+ selectorOrMenu := nil.
+ ] do:[
+ selectorOrMenu := selectedSpec view asMenu.
+ ]
+ ].
].
].
editor := MenuEditor new.
editor masterApplication:self.
- editor specClass: cls.
- editor useHelpTool:(self helpTool).
-
- selectorOrMenu class == Menu
- ifTrue: [self breakPoint:#cg."no resources"editor openModalOnMenu:selectorOrMenu]
- ifFalse: [editor openModalOnClass:cls andSelector:selectorOrMenu].
-
- editor hasSaved ifTrue:[
- holder := self specTool aspectFor:#menuSelector.
- holder value:(editor specSelector).
- self accept.
- ^ self
+ self isEditingSpecOnly ifFalse:[
+ editor specClass: cls.
+ editor useHelpTool:(self helpTool).
+ ].
+
+ (self isEditingSpecOnly or:[selectorOrMenu class == Menu]) ifTrue: [
+ editor openModalOnMenu:(selectorOrMenu).
+ editor hasSaved ifTrue:[
+ windowSpec menu:(editor savedSpec).
+ self accept.
+ ].
+ ] ifFalse: [
+ editor openModalOnClass:cls andSelector:selectorOrMenu.
+ editor hasSaved ifTrue:[
+ holder := self specTool aspectFor:#menuSelector.
+ holder value:(editor specSelector).
+ self accept.
+ ].
].
"Modified: / 12-01-2008 / 10:31:41 / cg"