UIPainter.st
changeset 2967 f1bdf4e5e0b4
parent 2952 3b055207c961
child 3025 7509aa3559e9
equal deleted inserted replaced
2966:c365ecae6727 2967:f1bdf4e5e0b4
  3332         self modifiedChannel value:true.
  3332         self modifiedChannel value:true.
  3333     ].
  3333     ].
  3334 !
  3334 !
  3335 
  3335 
  3336 openEditMenu
  3336 openEditMenu
  3337     "opens a Menu Editor on current widget"
  3337     "opens a Menu Editor on current widget for the standard menu
       
  3338      (accessed via #menu or #menuSelector)"
       
  3339 
       
  3340     ^ self
       
  3341         openEditMenuFor:#menu
       
  3342         and:#menuSelector
       
  3343 !
       
  3344 
       
  3345 openEditMenuFor:menuSelector and:menuSelectorSelector
       
  3346     "opens a Menu Editor on the current widget.
       
  3347      The arguments menuSelector (typically: #menu) 
       
  3348      and menuSelectorSelector (typically: #menuSelector) can be passed in
       
  3349      for widgets with a secondary menu (with different selectors)"
  3338 
  3350 
  3339     |cls selectorOrMenu editor selectedSpec windowSpec holder|
  3351     |cls selectorOrMenu editor selectedSpec windowSpec holder|
  3340 
  3352 
  3341     self isEditingSpecOnly ifFalse:[
  3353     self isEditingSpecOnly ifFalse:[
  3342         "/ normal mode
  3354         "/ normal mode
  3348 
  3360 
  3349     self acceptOrIgnoreSectionModification.
  3361     self acceptOrIgnoreSectionModification.
  3350     windowSpec := self specTool specification.
  3362     windowSpec := self specTool specification.
  3351 
  3363 
  3352     self isEditingSpecOnly ifTrue:[
  3364     self isEditingSpecOnly ifTrue:[
  3353         selectorOrMenu := windowSpec menu
  3365         selectorOrMenu := windowSpec perform:menuSelector
  3354     ] ifFalse:[
  3366     ] ifFalse:[
  3355         (selectorOrMenu := windowSpec menuSelector) notNil ifTrue:[
  3367         (selectorOrMenu := (windowSpec perform:menuSelectorSelector)) notNil ifTrue:[
  3356             selectorOrMenu := selectorOrMenu asSymbol
  3368             selectorOrMenu := selectorOrMenu asSymbol
  3357         ] ifFalse:[
  3369         ] ifFalse:[
  3358             "/ cg: q&d hack ...
  3370             "/ cg: q&d hack ...
  3359             selectorOrMenu := nil.
  3371             selectorOrMenu := nil.
  3360 
  3372 
  3376     ].
  3388     ].
  3377 
  3389 
  3378     (self isEditingSpecOnly or:[selectorOrMenu class == Menu]) ifTrue: [
  3390     (self isEditingSpecOnly or:[selectorOrMenu class == Menu]) ifTrue: [
  3379         editor openModalOnMenu:(selectorOrMenu).
  3391         editor openModalOnMenu:(selectorOrMenu).
  3380         editor hasSaved ifTrue:[
  3392         editor hasSaved ifTrue:[
  3381             windowSpec menu:(editor savedSpec).
  3393             windowSpec perform:(menuSelector,':')asSymbol with:(editor savedSpec).
  3382             self accept.
  3394             self accept.
  3383         ].
  3395         ].
  3384     ] ifFalse: [
  3396     ] ifFalse: [
  3385         editor openModalOnClass:cls andSelector:selectorOrMenu.
  3397         editor openModalOnClass:cls andSelector:selectorOrMenu.
  3386         editor hasSaved ifTrue:[
  3398         editor hasSaved ifTrue:[
  3387             holder := self specTool aspectFor:#menuSelector.
  3399             holder := self specTool aspectFor:menuSelector.
  3388             holder value:(editor specSelector).
  3400             holder value:(editor specSelector).
  3389             self accept.
  3401             self accept.
  3390         ].
  3402         ].
  3391     ].
  3403     ].
  3392 
  3404