# HG changeset patch # User Claus Gittinger # Date 1247162841 -7200 # Node ID ea1484c2ab9b42dd0e92ddf6161da1fa60fd526e # Parent 903843f8a8242b354354d51f8877e157cb5dca78 preps for menuSpec without a class diff -r 903843f8a824 -r ea1484c2ab9b UIPainter.st --- 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"