equal
deleted
inserted
replaced
40 classVariableNames:'' |
40 classVariableNames:'' |
41 poolDictionaries:'' |
41 poolDictionaries:'' |
42 privateIn:MenuEditor |
42 privateIn:MenuEditor |
43 ! |
43 ! |
44 |
44 |
45 MenuEditor::Item subclass:#MenuItem |
45 MenuEditor::Item subclass:#RegularMenuItem |
46 instanceVariableNames:'' |
46 instanceVariableNames:'' |
47 classVariableNames:'' |
47 classVariableNames:'' |
48 poolDictionaries:'' |
48 poolDictionaries:'' |
49 privateIn:MenuEditor |
49 privateIn:MenuEditor |
50 ! |
50 ! |
62 classVariableNames:'' |
62 classVariableNames:'' |
63 poolDictionaries:'' |
63 poolDictionaries:'' |
64 privateIn:MenuEditor |
64 privateIn:MenuEditor |
65 ! |
65 ! |
66 |
66 |
67 MenuEditor::MenuItem subclass:#RootItem |
67 MenuEditor::RegularMenuItem subclass:#RootItem |
68 instanceVariableNames:'' |
68 instanceVariableNames:'' |
69 classVariableNames:'' |
69 classVariableNames:'' |
70 poolDictionaries:'' |
70 poolDictionaries:'' |
71 privateIn:MenuEditor |
71 privateIn:MenuEditor |
72 ! |
72 ! |
1953 objects := aContext dropObjects. |
1953 objects := aContext dropObjects. |
1954 objects isEmpty ifTrue:[ ^ self ]. "/ nothing to drop ??? |
1954 objects isEmpty ifTrue:[ ^ self ]. "/ nothing to drop ??? |
1955 |
1955 |
1956 "/ test whether all objects are dropable (kind of MenuItem) |
1956 "/ test whether all objects are dropable (kind of MenuItem) |
1957 objects do:[:el| |
1957 objects do:[:el| |
1958 el theObject class == MenuItem ifFalse:[ |
1958 (el theObject askFor:#isMenuItem) ifFalse:[ |
1959 "/ contains none-dropable objects |
1959 "/ contains none-dropable objects |
1960 ^ self |
1960 ^ self |
1961 ]. |
1961 ]. |
1962 ]. |
1962 ]. |
1963 |
1963 |
2441 selectedItem ifNil:[^ self]. |
2441 selectedItem ifNil:[^ self]. |
2442 |
2442 |
2443 selectedItem canAddDelayedMenu ifFalse:[ ^ self ]. |
2443 selectedItem canAddDelayedMenu ifFalse:[ ^ self ]. |
2444 self askForItemModification ifFalse:[ ^ self ]. |
2444 self askForItemModification ifFalse:[ ^ self ]. |
2445 |
2445 |
2446 what == #menu ifTrue:[ delayedItem := MenuItem new ] |
2446 what == #menu ifTrue:[ delayedItem := RegularMenuItem new ] |
2447 ifFalse:[ delayedItem := LinkedMenuItem new ]. |
2447 ifFalse:[ delayedItem := LinkedMenuItem new ]. |
2448 |
2448 |
2449 delayedItem setExpanded:true. |
2449 delayedItem setExpanded:true. |
2450 delayedItem := selectedItem add:delayedItem. |
2450 delayedItem := selectedItem add:delayedItem. |
2451 |
2451 |
2468 |
2468 |
2469 doCreateMenu |
2469 doCreateMenu |
2470 "create a new Menu |
2470 "create a new Menu |
2471 " |
2471 " |
2472 self addAndSelect:[ |item| |
2472 self addAndSelect:[ |item| |
2473 item := MenuItem new. |
2473 item := RegularMenuItem new. |
2474 item expand. |
2474 item expand. |
2475 item |
2475 item |
2476 ]. |
2476 ]. |
2477 ! |
2477 ! |
2478 |
2478 |
2484 |
2484 |
2485 doCreateStandardEditMenu |
2485 doCreateStandardEditMenu |
2486 "create a standart edit menu |
2486 "create a standart edit menu |
2487 " |
2487 " |
2488 self addAndSelect:[ |
2488 self addAndSelect:[ |
2489 MenuItem menu:(self class standardEditMenu) labeled:'Edit' translateLabel:true |
2489 RegularMenuItem menu:(self class standardEditMenu) labeled:'Edit' translateLabel:true |
2490 ]. |
2490 ]. |
2491 ! |
2491 ! |
2492 |
2492 |
2493 doCreateStandardFileMenu |
2493 doCreateStandardFileMenu |
2494 "create a standart file menu |
2494 "create a standart file menu |
2495 " |
2495 " |
2496 self addAndSelect:[ |
2496 self addAndSelect:[ |
2497 MenuItem menu:(self class standardFileMenu) labeled:'File' translateLabel:true |
2497 RegularMenuItem menu:(self class standardFileMenu) labeled:'File' translateLabel:true |
2498 ]. |
2498 ]. |
2499 ! |
2499 ! |
2500 |
2500 |
2501 doCreateStandardHelpMenu |
2501 doCreateStandardHelpMenu |
2502 "create a standart help menu |
2502 "create a standart help menu |
2503 " |
2503 " |
2504 |item| |
2504 |item| |
2505 |
2505 |
2506 self addAndSelect:[ |
2506 self addAndSelect:[ |
2507 item := MenuItem menu:(self class standardHelpMenu) labeled:'Help' translateLabel:true. |
2507 item := RegularMenuItem menu:(self class standardHelpMenu) labeled:'Help' translateLabel:true. |
2508 item aspectAt:#startGroup put:#right. |
2508 item aspectAt:#startGroup put:#right. |
2509 item |
2509 item |
2510 ]. |
2510 ]. |
2511 ! ! |
2511 ! ! |
2512 |
2512 |
2590 item := self selectedItem. |
2590 item := self selectedItem. |
2591 item ifNil:[ ^ self ]. |
2591 item ifNil:[ ^ self ]. |
2592 |
2592 |
2593 loMenuItems := OrderedCollection new. |
2593 loMenuItems := OrderedCollection new. |
2594 aCollection do:[:el| |
2594 aCollection do:[:el| |
2595 el class == MenuItem ifTrue:[ loMenuItems add:el ]. |
2595 (el askFor:#isMenuItem) ifTrue:[ loMenuItems add:el ]. |
2596 ]. |
2596 ]. |
2597 loMenuItems isEmpty ifTrue:[ ^ self ]. |
2597 loMenuItems isEmpty ifTrue:[ ^ self ]. |
2598 |
2598 |
2599 self addAndSelect:[ |
2599 self addAndSelect:[ |
2600 loMenuItems collect:[:el| Item menuItem:el ] |
2600 loMenuItems collect:[:el| Item menuItem:el ] |
2601 ]. |
2601 ]. |
2602 ! ! |
2602 ! ! |
2603 |
2603 |
2604 !MenuEditor methodsFor:'user actions - hierarchy'! |
2604 !MenuEditor methodsFor:'user actions - hierarchy'! |
2605 |
2605 |
2828 classFor:aMenuItem |
2828 classFor:aMenuItem |
2829 |
2829 |
2830 aMenuItem isNil ifTrue:[ ^ nil ]. |
2830 aMenuItem isNil ifTrue:[ ^ nil ]. |
2831 |
2831 |
2832 aMenuItem itemValue isNil ifTrue:[ |
2832 aMenuItem itemValue isNil ifTrue:[ |
2833 aMenuItem submenu notNil ifTrue:[ ^ MenuEditor::MenuItem ]. |
2833 aMenuItem submenu notNil ifTrue:[ ^ MenuEditor::RegularMenuItem ]. |
2834 aMenuItem submenuChannel notNil ifTrue:[ ^ MenuEditor::LinkedMenuItem ]. |
2834 aMenuItem submenuChannel notNil ifTrue:[ ^ MenuEditor::LinkedMenuItem ]. |
2835 |
2835 |
2836 (self separatorTypeOf:(aMenuItem rawLabel)) notNil ifTrue:[ |
2836 (self separatorTypeOf:(aMenuItem rawLabel)) notNil ifTrue:[ |
2837 ^ MenuEditor::SeparatorItem |
2837 ^ MenuEditor::SeparatorItem |
2838 ] |
2838 ] |
3087 |value| |
3087 |value| |
3088 |
3088 |
3089 menuItem := MenuItem labeled:(self rawLabel). |
3089 menuItem := MenuItem labeled:(self rawLabel). |
3090 |
3090 |
3091 MenuEditor aspects do:[:aKey| |
3091 MenuEditor aspects do:[:aKey| |
3092 value := aMenuItem perform:aKey. |
3092 value := aMenuItem perform:aKey. |
3093 value ifNotNil:[ self aspectAt:aKey put:value ] |
3093 value ifNotNil:[ self aspectAt:aKey put:value ] |
3094 ]. |
3094 ]. |
3095 ! |
3095 ! |
3096 |
3096 |
3097 rawLabel |
3097 rawLabel |
3098 "returns the label assigned to the item |
3098 "returns the label assigned to the item |
3224 |
3224 |
3225 isKindOfMenu |
3225 isKindOfMenu |
3226 "returns true if the item is a Linked Menu or Menu |
3226 "returns true if the item is a Linked Menu or Menu |
3227 " |
3227 " |
3228 ^ false |
3228 ^ false |
|
3229 ! |
|
3230 |
|
3231 isMenuEditItem |
|
3232 ^ true |
3229 ! |
3233 ! |
3230 |
3234 |
3231 isRootItem |
3235 isRootItem |
3232 "returns true if the item is the root item |
3236 "returns true if the item is the root item |
3233 " |
3237 " |
3618 |
3622 |
3619 super menuItem:anItem. |
3623 super menuItem:anItem. |
3620 submenu := anItem submenu. |
3624 submenu := anItem submenu. |
3621 |
3625 |
3622 submenu notNil ifTrue:[ |
3626 submenu notNil ifTrue:[ |
3623 item := MenuEditor::MenuItem new |
3627 item := MenuEditor::RegularMenuItem new |
3624 ] ifFalse:[ |
3628 ] ifFalse:[ |
3625 anItem submenuChannel isNil ifTrue:[ |
3629 anItem submenuChannel isNil ifTrue:[ |
3626 ^ self |
3630 ^ self |
3627 ]. |
3631 ]. |
3628 item := MenuEditor::LinkedMenuItem new |
3632 item := MenuEditor::LinkedMenuItem new |
3996 |
4000 |
3997 isKindOfMenu |
4001 isKindOfMenu |
3998 ^ true |
4002 ^ true |
3999 ! ! |
4003 ! ! |
4000 |
4004 |
4001 !MenuEditor::MenuItem class methodsFor:'defaults'! |
4005 !MenuEditor::RegularMenuItem class methodsFor:'defaults'! |
4002 |
4006 |
4003 defaultDelayedLabel |
4007 defaultDelayedLabel |
4004 ^ 'delayed' |
4008 ^ 'delayed' |
4005 ! |
4009 ! |
4006 |
4010 |
4007 defaultLabel |
4011 defaultLabel |
4008 ^ 'Menu' |
4012 ^ 'Menu' |
4009 ! ! |
4013 ! ! |
4010 |
4014 |
4011 !MenuEditor::MenuItem class methodsFor:'instance creation'! |
4015 !MenuEditor::RegularMenuItem class methodsFor:'instance creation'! |
4012 |
4016 |
4013 menu:aMenu labeled:aString |
4017 menu:aMenu labeled:aString |
4014 |item| |
4018 |item| |
4015 |
4019 |
4016 item := self new. |
4020 item := self new. |
4025 item menu:aMenu labeled:aString. |
4029 item menu:aMenu labeled:aString. |
4026 item translateLabel:translateLabel. |
4030 item translateLabel:translateLabel. |
4027 ^ item |
4031 ^ item |
4028 ! ! |
4032 ! ! |
4029 |
4033 |
4030 !MenuEditor::MenuItem class methodsFor:'interface - specs'! |
4034 !MenuEditor::RegularMenuItem class methodsFor:'interface - specs'! |
4031 |
4035 |
4032 basicsEditSpec |
4036 basicsEditSpec |
4033 "This resource specification was automatically generated |
4037 "This resource specification was automatically generated |
4034 by the UIPainter of ST/X." |
4038 by the UIPainter of ST/X." |
4035 |
4039 |
4138 |
4142 |
4139 ) |
4143 ) |
4140 ) |
4144 ) |
4141 ! ! |
4145 ! ! |
4142 |
4146 |
4143 !MenuEditor::MenuItem methodsFor:'accessing'! |
4147 !MenuEditor::RegularMenuItem methodsFor:'accessing'! |
4144 |
4148 |
4145 argument:aValue |
4149 argument:aValue |
4146 "/ ignorred. |
4150 "/ ignorred. |
4147 ! |
4151 ! |
4148 |
4152 |
4220 children do:[:el| menu addItem:(el menuItem) ]. |
4224 children do:[:el| menu addItem:(el menuItem) ]. |
4221 ]. |
4225 ]. |
4222 ^ menu |
4226 ^ menu |
4223 ! ! |
4227 ! ! |
4224 |
4228 |
4225 !MenuEditor::MenuItem methodsFor:'aspects'! |
4229 !MenuEditor::RegularMenuItem methodsFor:'aspects'! |
4226 |
4230 |
4227 getDelayedAttributesFrom:aMenuItem |
4231 getDelayedAttributesFrom:aMenuItem |
4228 |
4232 |
4229 self menu:(aMenuItem submenu) labeled:nil. |
4233 self menu:(aMenuItem submenu) labeled:nil. |
4230 menuItem horizontalLayout:(aMenuItem horizontalLayout). |
4234 menuItem horizontalLayout:(aMenuItem horizontalLayout). |
4233 setDelayedAttributesTo:aMenuItem |
4237 setDelayedAttributesTo:aMenuItem |
4234 aMenuItem submenu:(self submenu). |
4238 aMenuItem submenu:(self submenu). |
4235 aMenuItem horizontalLayout:(menuItem horizontalLayout). |
4239 aMenuItem horizontalLayout:(menuItem horizontalLayout). |
4236 ! ! |
4240 ! ! |
4237 |
4241 |
4238 !MenuEditor::MenuItem methodsFor:'displaying'! |
4242 !MenuEditor::RegularMenuItem methodsFor:'displaying'! |
4239 |
4243 |
4240 displayLabel |
4244 displayLabel |
4241 "returns the label dependent on is delayed or not |
4245 "returns the label dependent on is delayed or not |
4242 " |
4246 " |
4243 self isDelayedMenu ifTrue:[ ^ self class defaultDelayedLabel ]. |
4247 self isDelayedMenu ifTrue:[ ^ self class defaultDelayedLabel ]. |
4247 icon |
4251 icon |
4248 self isDelayedMenu ifTrue:[ ^ self class iconDelayedMenu ]. |
4252 self isDelayedMenu ifTrue:[ ^ self class iconDelayedMenu ]. |
4249 ^ self class iconMenu |
4253 ^ self class iconMenu |
4250 ! ! |
4254 ! ! |
4251 |
4255 |
4252 !MenuEditor::MenuItem methodsFor:'queries'! |
4256 !MenuEditor::RegularMenuItem methodsFor:'queries'! |
4253 |
4257 |
4254 canAddChildren |
4258 canAddChildren |
4255 "children can be added |
4259 "children can be added |
4256 " |
4260 " |
4257 ^ true |
4261 ^ true |