equal
deleted
inserted
replaced
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 |