11 " |
11 " |
12 |
12 |
13 |
13 |
14 |
14 |
15 ApplicationModel subclass:#MenuEditor |
15 ApplicationModel subclass:#MenuEditor |
16 instanceVariableNames:'specClass tabSelection aspects slices activeHelpTool' |
16 instanceVariableNames:'specClass tabSelection aspects slices activeHelpTool' |
17 classVariableNames:'' |
17 classVariableNames:'' |
18 poolDictionaries:'' |
18 poolDictionaries:'' |
19 category:'Interface-UIPainter' |
19 category:'Interface-UIPainter' |
20 ! |
20 ! |
21 |
21 |
22 Object subclass:#Item |
22 Object subclass:#Item |
23 instanceVariableNames:'activeHelpKey enabled label value nameKey indication shortcutKey |
23 instanceVariableNames:'activeHelpKey enabled label value nameKey indication shortcutKey |
24 accessCharaterPos retriever icon iconAndLabel submenuChannel' |
24 accessCharaterPos retriever icon iconAndLabel submenuChannel' |
25 classVariableNames:'' |
25 classVariableNames:'' |
26 poolDictionaries:'' |
26 poolDictionaries:'' |
27 privateIn:MenuEditor |
27 privateIn:MenuEditor |
28 ! |
28 ! |
29 |
29 |
30 SelectionInTreeView subclass:#Painter |
30 SelectionInTreeView subclass:#Painter |
31 instanceVariableNames:'imageDirSelect' |
31 instanceVariableNames:'imageMenuLink imageSeparator' |
32 classVariableNames:'CopyBuffer' |
32 classVariableNames:'CopyBuffer ImageMenuLink ImageSeparator' |
33 poolDictionaries:'' |
33 poolDictionaries:'' |
34 privateIn:MenuEditor |
34 privateIn:MenuEditor |
35 ! |
35 ! |
36 |
36 |
37 !MenuEditor class methodsFor:'documentation'! |
37 !MenuEditor class methodsFor:'documentation'! |
38 |
38 |
39 copyright |
39 copyright |
266 ) |
286 ) |
267 ) |
287 ) |
268 ) |
288 ) |
269 ! |
289 ! |
270 |
290 |
|
291 menuButtons |
|
292 "this window spec was automatically generated by the ST/X MenuEditor" |
|
293 |
|
294 "do not manually edit this - the builder may not be able to |
|
295 handle the specification if its corrupted." |
|
296 |
|
297 " |
|
298 MenuEditor new openOnClass:MenuEditor andSelector:#menuButtons |
|
299 (Menu new fromLiteralArrayEncoding:(MenuEditor menuButtons)) startUp |
|
300 " |
|
301 |
|
302 <resource: #menu> |
|
303 |
|
304 ^ |
|
305 |
|
306 #(#Menu |
|
307 |
|
308 #( |
|
309 #(#MenuItem |
|
310 #'label:' 'createMenu' |
|
311 #'value:' #doCreateMenu |
|
312 #'enabled:' #hasAnySingleSelection |
|
313 #'labelImage:' |
|
314 #(#ResourceRetriever |
|
315 #MenuEditor #iconCreateMenu |
|
316 ) |
|
317 ) |
|
318 #(#MenuItem |
|
319 #'label:' 'createLink' |
|
320 #'value:' #doCreateLink |
|
321 #'enabled:' #hasAnySingleSelection |
|
322 #'labelImage:' |
|
323 #(#ResourceRetriever |
|
324 #MenuEditor #iconCreateLink |
|
325 ) |
|
326 ) |
|
327 #(#MenuItem |
|
328 #'label:' 'createItem' |
|
329 #'value:' #doCreateItem |
|
330 #'enabled:' #hasAnySingleSelection |
|
331 #'labelImage:' |
|
332 #(#ResourceRetriever |
|
333 #MenuEditor #iconCreateItem |
|
334 ) |
|
335 ) |
|
336 #(#MenuItem |
|
337 #'label:' 'createSeparator' |
|
338 #'value:' #doCreateSep |
|
339 #'enabled:' #hasAnySingleSelection |
|
340 #'labelImage:' |
|
341 #(#ResourceRetriever |
|
342 #MenuEditor #iconCreateSep |
|
343 ) |
|
344 ) |
|
345 #(#MenuItem |
|
346 #'label:' '' |
|
347 ) |
|
348 #(#MenuItem |
|
349 #'label:' 'stepUp' |
|
350 #'value:' #doStepUp |
|
351 #'enabled:' #enabledStepOver |
|
352 #'labelImage:' |
|
353 #(#ResourceRetriever |
|
354 #MenuEditor #iconStepUp |
|
355 ) |
|
356 ) |
|
357 #(#MenuItem |
|
358 #'label:' 'stepDown' |
|
359 #'value:' #doStepDown |
|
360 #'enabled:' #enabledStepOver |
|
361 #'labelImage:' |
|
362 #(#ResourceRetriever |
|
363 #MenuEditor #iconStepDown |
|
364 ) |
|
365 ) |
|
366 #(#MenuItem |
|
367 #'label:' 'stepIn' |
|
368 #'value:' #doStepIn |
|
369 #'enabled:' #enabledStepIn |
|
370 #'labelImage:' |
|
371 #(#ResourceRetriever |
|
372 #MenuEditor #iconStepIn |
|
373 ) |
|
374 ) |
|
375 #(#MenuItem |
|
376 #'label:' 'stepOut' |
|
377 #'value:' #doStepOut |
|
378 #'enabled:' #enabledStepOut |
|
379 #'labelImage:' |
|
380 #(#ResourceRetriever |
|
381 #MenuEditor #iconStepOut |
|
382 ) |
|
383 ) |
|
384 ) nil |
|
385 nil |
|
386 ) |
|
387 ! |
|
388 |
271 menuDefaultLink |
389 menuDefaultLink |
272 "this window spec was automatically generated by the ST/X MenuEditor" |
390 "this window spec was automatically generated by the ST/X MenuEditor" |
273 |
391 |
274 "do not manually edit this - the builder may not be able to |
392 "do not manually edit this - the builder may not be able to |
275 handle the specification if its corrupted." |
393 handle the specification if its corrupted." |
286 #(#Menu |
404 #(#Menu |
287 |
405 |
288 #( |
406 #( |
289 #(#MenuItem |
407 #(#MenuItem |
290 #'label:' '!! derives from application !!' |
408 #'label:' '!! derives from application !!' |
|
409 ) |
|
410 ) nil |
|
411 nil |
|
412 ) |
|
413 ! |
|
414 |
|
415 menuPainter |
|
416 "this window spec was automatically generated by the ST/X MenuEditor" |
|
417 |
|
418 "do not manually edit this - the builder may not be able to |
|
419 handle the specification if its corrupted." |
|
420 |
|
421 " |
|
422 MenuEditor new openOnClass:MenuEditor andSelector:#menuPainter |
|
423 (Menu new fromLiteralArrayEncoding:(MenuEditor menuPainter)) startUp |
|
424 " |
|
425 |
|
426 <resource: #menu> |
|
427 |
|
428 ^ |
|
429 |
|
430 #(#Menu |
|
431 |
|
432 #( |
|
433 #(#MenuItem |
|
434 #'label:' 'copy' |
|
435 #'value:' #doCopy |
|
436 #'enabled:' #hasValidSelection |
|
437 ) |
|
438 #(#MenuItem |
|
439 #'label:' 'cut' |
|
440 #'value:' #doCut |
|
441 #'enabled:' #hasValidSelection |
|
442 ) |
|
443 #(#MenuItem |
|
444 #'label:' 'paste' |
|
445 #'value:' #doPaste |
|
446 #'enabled:' #hasAnySingleSelection |
|
447 ) |
|
448 #(#MenuItem |
|
449 #'label:' '-' |
|
450 ) |
|
451 #(#MenuItem |
|
452 #'label:' 'create' |
|
453 #'enabled:' #hasAnySingleSelection |
|
454 #'submenu:' |
|
455 #(#Menu |
|
456 |
|
457 #( |
|
458 #(#MenuItem |
|
459 #'label:' 'submenu static' |
|
460 #'value:' #doCreateMenu |
|
461 #'labelImage:' |
|
462 #(#ResourceRetriever |
|
463 #MenuEditor #iconCreateMenu |
|
464 'submenu static' |
|
465 ) |
|
466 ) |
|
467 #(#MenuItem |
|
468 #'label:' 'submenu dynamic' |
|
469 #'value:' #doCreateLink |
|
470 #'labelImage:' |
|
471 #(#ResourceRetriever |
|
472 #MenuEditor #iconCreateLink |
|
473 'submenu dynamic' |
|
474 ) |
|
475 ) |
|
476 #(#MenuItem |
|
477 #'label:' '-' |
|
478 ) |
|
479 #(#MenuItem |
|
480 #'label:' 'item' |
|
481 #'value:' #doCreateItem |
|
482 #'labelImage:' |
|
483 #(#ResourceRetriever |
|
484 #MenuEditor #iconCreateItem |
|
485 'item' |
|
486 ) |
|
487 ) |
|
488 #(#MenuItem |
|
489 #'label:' 'separator' |
|
490 #'value:' #doCreateSep |
|
491 #'labelImage:' |
|
492 #(#ResourceRetriever |
|
493 #MenuEditor #iconCreateSep |
|
494 'separator' |
|
495 ) |
|
496 ) |
|
497 ) nil |
|
498 nil |
|
499 ) |
291 ) |
500 ) |
292 ) nil |
501 ) nil |
293 nil |
502 nil |
294 ) |
503 ) |
295 ! |
504 ! |
381 ) |
590 ) |
382 #(#MenuItem |
591 #(#MenuItem |
383 #'label:' 'test' |
592 #'label:' 'test' |
384 #'submenuChannel:' #submenuTest |
593 #'submenuChannel:' #submenuTest |
385 ) |
594 ) |
386 #(#MenuItem |
|
387 #'label:' '' |
|
388 ) |
|
389 #(#MenuItem |
|
390 #'label:' '-' |
|
391 ) |
|
392 #(#MenuItem |
|
393 #'label:' 'stepUp' |
|
394 #'value:' #doStepUp |
|
395 #'enabled:' #enabledStepOver |
|
396 #'labelImage:' |
|
397 #(#ResourceRetriever |
|
398 #MenuEditor #iconStepUp |
|
399 ) |
|
400 ) |
|
401 #(#MenuItem |
|
402 #'label:' '-' |
|
403 ) |
|
404 #(#MenuItem |
|
405 #'label:' 'stepDown' |
|
406 #'value:' #doStepDown |
|
407 #'enabled:' #enabledStepOver |
|
408 #'labelImage:' |
|
409 #(#ResourceRetriever |
|
410 #MenuEditor #iconStepDown |
|
411 ) |
|
412 ) |
|
413 #(#MenuItem |
|
414 #'label:' '-' |
|
415 ) |
|
416 #(#MenuItem |
|
417 #'label:' '' |
|
418 ) |
|
419 #(#MenuItem |
|
420 #'label:' '-' |
|
421 ) |
|
422 #(#MenuItem |
|
423 #'label:' 'stepIn' |
|
424 #'value:' #doStepIn |
|
425 #'enabled:' #enabledStepIn |
|
426 #'labelImage:' |
|
427 #(#ResourceRetriever |
|
428 #MenuEditor #iconStepIn |
|
429 ) |
|
430 ) |
|
431 #(#MenuItem |
|
432 #'label:' '-' |
|
433 ) |
|
434 #(#MenuItem |
|
435 #'label:' 'stepOut' |
|
436 #'value:' #doStepOut |
|
437 #'enabled:' #enabledStepOut |
|
438 #'labelImage:' |
|
439 #(#ResourceRetriever |
|
440 #MenuEditor #iconStepOut |
|
441 ) |
|
442 ) |
|
443 #(#MenuItem |
|
444 #'label:' '-' |
|
445 ) |
|
446 ) nil |
595 ) nil |
447 nil |
596 nil |
448 ) |
597 ) |
449 ! |
598 ! |
450 |
599 |
476 #(#SpecCollection |
625 #(#SpecCollection |
477 #'collection:' |
626 #'collection:' |
478 #( |
627 #( |
479 #(#ArbitraryComponentSpec |
628 #(#ArbitraryComponentSpec |
480 #'name:' 'painterView' |
629 #'name:' 'painterView' |
481 #'layout:' #(#LayoutFrame 0 0.0 25 0.0 0 0.5 0 1.0) |
630 #'layout:' #(#LayoutFrame 0 0.0 57 0 0 0.5 0 1.0) |
482 #'component:' #painter |
631 #'menu:' #menuPainter |
483 #'hasHorizontalScrollBar:' true |
632 #'hasHorizontalScrollBar:' true |
484 #'hasVerticalScrollBar:' true |
633 #'hasVerticalScrollBar:' true |
|
634 #'component:' #painter |
485 #'hasBorder:' false |
635 #'hasBorder:' false |
486 #'miniScrollerHorizontal:' false |
|
487 #'miniScrollerVertical:' false |
|
488 ) |
636 ) |
489 #(#NoteBookViewSpec |
637 #(#NoteBookViewSpec |
490 #'name:' 'specificationView' |
638 #'name:' 'specificationView' |
491 #'layout:' #(#LayoutFrame 0 0.5 25 0.0 0 1.0 -25 1.0) |
639 #'layout:' #(#LayoutFrame 0 0.5 0 0.0 0 1.0 -25 1.0) |
|
640 #'tabable:' true |
492 #'menu:' #tabList |
641 #'menu:' #tabList |
493 #'model:' #tabModel |
642 #'model:' #tabModel |
494 #'tabWidget:' #Window |
643 #'tabWidget:' #Window |
495 #'useIndex:' true |
644 #'useIndex:' true |
496 #'canvas:' #tabCanvas |
645 #'canvas:' #tabCanvas |
523 #'horizontalSpace:' 3 |
672 #'horizontalSpace:' 3 |
524 #'verticalSpace:' 3 |
673 #'verticalSpace:' 3 |
525 ) |
674 ) |
526 #(#MenuPanelSpec |
675 #(#MenuPanelSpec |
527 #'name:' 'pullDownMenu' |
676 #'name:' 'pullDownMenu' |
528 #'layout:' #(#LayoutFrame 0 0.0 0 0.0 0 1.0 24 0) |
677 #'layout:' #(#LayoutFrame 0 0.0 0 0.0 0 0.5 24 0) |
|
678 #'tabable:' true |
529 #'menu:' #menuPullDown |
679 #'menu:' #menuPullDown |
|
680 ) |
|
681 #(#MenuPanelSpec |
|
682 #'name:' 'menuPanel1' |
|
683 #'layout:' #(#LayoutFrame 0 0 28 0 0 0.5 53 0) |
|
684 #'menu:' #menuButtons |
|
685 #'showSeparatingLines:' true |
530 ) |
686 ) |
531 ) |
687 ) |
532 ) |
688 ) |
533 ) |
689 ) |
534 ! ! |
690 ! ! |
1056 anItem enabled:true. |
1212 anItem enabled:true. |
1057 ]. |
1213 ]. |
1058 ^ menu |
1214 ^ menu |
1059 ! ! |
1215 ! ! |
1060 |
1216 |
|
1217 !MenuEditor methodsFor:'accessing menu'! |
|
1218 |
|
1219 menuButtons |
|
1220 "this window spec was automatically generated by the ST/X MenuEditor" |
|
1221 |
|
1222 ^ self class menuButtons |
|
1223 |
|
1224 |
|
1225 ! |
|
1226 |
|
1227 menuPainter |
|
1228 "this window spec was automatically generated by the ST/X MenuEditor" |
|
1229 |
|
1230 ^ self class menuPainter |
|
1231 |
|
1232 |
|
1233 ! ! |
|
1234 |
1061 !MenuEditor methodsFor:'actions'! |
1235 !MenuEditor methodsFor:'actions'! |
1062 |
1236 |
1063 accept |
1237 accept |
1064 "automatically generated by UIPainter ..." |
1238 "automatically generated by UIPainter ..." |
1065 |
1239 |
1152 builder aspectAt:#enabledStepOver put:(holder := false asValue). |
1326 builder aspectAt:#enabledStepOver put:(holder := false asValue). |
1153 ]. |
1327 ]. |
1154 ^ holder |
1328 ^ holder |
1155 ! |
1329 ! |
1156 |
1330 |
|
1331 hasAnySingleSelection |
|
1332 |holder| |
|
1333 |
|
1334 (holder := builder bindingAt:#hasAnySingleSelection) isNil ifTrue:[ |
|
1335 builder aspectAt:#hasAnySingleSelection put:(holder := false asValue). |
|
1336 ]. |
|
1337 ^ holder |
|
1338 |
|
1339 ! |
|
1340 |
|
1341 hasValidSelection |
|
1342 |holder| |
|
1343 |
|
1344 (holder := builder bindingAt:#hasValidSelection) isNil ifTrue:[ |
|
1345 builder aspectAt:#hasValidSelection put:(holder := false asValue). |
|
1346 ]. |
|
1347 ^ holder |
|
1348 |
|
1349 ! |
|
1350 |
|
1351 hasValidSingleSelection |
|
1352 |holder| |
|
1353 |
|
1354 (holder := builder bindingAt:#hasValidSingleSelection) isNil ifTrue:[ |
|
1355 builder aspectAt:#hasValidSingleSelection put:(holder := false asValue). |
|
1356 ]. |
|
1357 ^ holder |
|
1358 |
|
1359 ! |
|
1360 |
1157 menuPullDown |
1361 menuPullDown |
1158 |menu| |
1362 |menu| |
1159 |
1363 |
1160 menu := Menu new. |
1364 menu := Menu new. |
1161 menu fromLiteralArrayEncoding:(self class menuPullDown). |
1365 menu fromLiteralArrayEncoding:(self class menuPullDown). |
1220 ! |
1424 ! |
1221 |
1425 |
1222 updateEnabledChannels |
1426 updateEnabledChannels |
1223 "update enabled channels |
1427 "update enabled channels |
1224 " |
1428 " |
1225 |node parent next| |
1429 |node parent next painter state| |
1226 |
1430 |
1227 node := self painter selectedNode. |
1431 painter := self painter. |
1228 |
1432 node := painter selectedNode. |
1229 (node notNil and:[(parent := node parent) notNil]) ifTrue:[ |
1433 state := false. |
1230 next := parent childAt:((parent indexOfChild:node) + 1). |
1434 |
1231 self enabledStepIn value:(next notNil and:[next hasChildren]). |
1435 node notNil ifTrue:[ |
1232 self enabledStepOver value:(parent children size > 1). |
1436 self hasAnySingleSelection value:true. |
1233 self enabledStepOut value:(parent parent notNil). |
1437 |
|
1438 (parent := node parent) notNil ifTrue:[ |
|
1439 next := parent childAt:((parent indexOfChild:node) + 1). |
|
1440 self enabledStepIn value:(next notNil and:[next hasChildren]). |
|
1441 self enabledStepOver value:(parent children size > 1). |
|
1442 self enabledStepOut value:(parent parent notNil). |
|
1443 self hasValidSingleSelection value:true. |
|
1444 self hasValidSelection value:true. |
|
1445 ^ self |
|
1446 ] |
1234 ] ifFalse:[ |
1447 ] ifFalse:[ |
1235 self enabledStepOver value:false. |
1448 self hasAnySingleSelection value:false. |
1236 self enabledStepIn value:false. |
1449 |
1237 self enabledStepOut value:false. |
1450 painter numberOfSelections ~~ 0 ifTrue:[ |
1238 ] |
1451 state := (painter isInSelection:1) not |
|
1452 ] |
|
1453 ]. |
|
1454 self enabledStepOver value:false. |
|
1455 self enabledStepIn value:false. |
|
1456 self enabledStepOut value:false. |
|
1457 self hasValidSingleSelection value:false. |
|
1458 self hasValidSelection value:state. |
|
1459 ! ! |
|
1460 |
|
1461 !MenuEditor methodsFor:'event handling'! |
|
1462 |
|
1463 doesNotUnderstand:aMessage |
|
1464 |painter| |
|
1465 |
|
1466 painter := self painter. |
|
1467 |
|
1468 (painter respondsTo:(aMessage selector)) ifTrue:[ |
|
1469 ^ aMessage sendTo:painter |
|
1470 ]. |
|
1471 super doesNotUnderstand:aMessage |
|
1472 |
|
1473 |
1239 ! ! |
1474 ! ! |
1240 |
1475 |
1241 !MenuEditor methodsFor:'queries'! |
1476 !MenuEditor methodsFor:'queries'! |
1242 |
1477 |
1243 isHelpToolSelected |
1478 isHelpToolSelected |
1790 "returns true if item is a seperator |
2025 "returns true if item is a seperator |
1791 " |
2026 " |
1792 ^ self separatorType notNil |
2027 ^ self separatorType notNil |
1793 ! ! |
2028 ! ! |
1794 |
2029 |
|
2030 !MenuEditor::Painter class methodsFor:'constants'! |
|
2031 |
|
2032 imageMenuLink |
|
2033 ImageMenuLink isNil ifTrue:[ |
|
2034 ImageMenuLink := Image fromFile:('xpmBitmaps/document_images/tiny_yellow_dir_link.xpm'). |
|
2035 ]. |
|
2036 ^ ImageMenuLink |
|
2037 " |
|
2038 ImageMenuLink := nil |
|
2039 " |
|
2040 |
|
2041 ! |
|
2042 |
|
2043 imageSeparator |
|
2044 ImageSeparator isNil ifTrue:[ |
|
2045 ImageSeparator := Image fromFile:('xpmBitmaps/document_images/tiny_file_exec.xpm'). |
|
2046 ]. |
|
2047 ^ ImageSeparator |
|
2048 " |
|
2049 ImageSeparator := nil |
|
2050 " |
|
2051 |
|
2052 ! ! |
|
2053 |
1795 !MenuEditor::Painter class methodsFor:'defaults'! |
2054 !MenuEditor::Painter class methodsFor:'defaults'! |
1796 |
2055 |
1797 defaultMenuMessage |
2056 defaultMenuMessage |
1798 "This message is the default yo be sent to the menuHolder to get a menu |
2057 "This message is the default yo be sent to the menuHolder to get a menu |
1799 " |
2058 " |
1961 ! |
2220 ! |
1962 |
2221 |
1963 figureFor:aNode |
2222 figureFor:aNode |
1964 "access figure for a node |
2223 "access figure for a node |
1965 " |
2224 " |
1966 (aNode hasChildren or:[aNode contents submenuChannel isNil]) ifTrue:[ |
2225 |item| |
1967 ^ super figureFor:aNode |
2226 |
1968 ]. |
2227 aNode hasChildren ifFalse:[ |
1969 imageDirSelect isNil ifTrue:[ |
2228 item := aNode contents. |
1970 imageDirSelect := Image fromFile:('xpmBitmaps/document_images/tiny_yellow_dir_link.xpm'). |
2229 |
1971 imageDirSelect := imageDirSelect onDevice:device. |
2230 item submenuChannel notNil ifTrue:[ |
1972 ]. |
2231 imageMenuLink isNil ifTrue:[ |
1973 ^ imageDirSelect |
2232 imageMenuLink := (self class imageMenuLink) onDevice:device. |
|
2233 ]. |
|
2234 ^ imageMenuLink |
|
2235 ]. |
|
2236 |
|
2237 item isSeparator ifTrue:[ |
|
2238 imageSeparator isNil ifTrue:[ |
|
2239 imageSeparator := (self class imageSeparator) onDevice:device. |
|
2240 ]. |
|
2241 ^ imageSeparator |
|
2242 ] |
|
2243 ]. |
|
2244 ^ super figureFor:aNode |
1974 ! ! |
2245 ! ! |
1975 |
2246 |
1976 !MenuEditor::Painter methodsFor:'initialization'! |
2247 !MenuEditor::Painter methodsFor:'initialization'! |
1977 |
2248 |
1978 initialize |
2249 initialize |
2104 idx > size ifTrue:[idx := 1] |
2375 idx > size ifTrue:[idx := 1] |
2105 ]. |
2376 ]. |
2106 model add:node beforeIndex:idx below:parent. |
2377 model add:node beforeIndex:idx below:parent. |
2107 self selectNode:node. |
2378 self selectNode:node. |
2108 ] |
2379 ] |
2109 ! |
|
2110 |
|
2111 menu |
|
2112 |menu subm sz inclRoot| |
|
2113 |
|
2114 (sz := self numberOfSelections) == 0 ifTrue:[ |
|
2115 ^ nil |
|
2116 ]. |
|
2117 |
|
2118 inclRoot := self isInSelection:1. |
|
2119 |
|
2120 sz > 1 ifTrue:[ |
|
2121 inclRoot ifTrue:[^ nil ]. |
|
2122 |
|
2123 ^ PopUpMenu labels:#( 'copy' 'cut' ) |
|
2124 selectors:#( #doCopy #doCut ) |
|
2125 receiver:self. |
|
2126 ]. |
|
2127 |
|
2128 menu := PopUpMenu labels:#( 'copy' 'cut' 'paste' '-' 'create' ) |
|
2129 selectors:#( #doCopy #doCut #doPaste nil #create ) |
|
2130 receiver:self. |
|
2131 |
|
2132 inclRoot ifTrue:[ |
|
2133 menu disable:#doCopy. |
|
2134 menu disable:#doCut. |
|
2135 ]. |
|
2136 subm := PopUpMenu labels:#( 'menu static' 'menu dynamic' '-' 'item' '-' 'separator' ) |
|
2137 selectors:#( #doCreateMenu #doCreateLink nil #doCreateItem nil #doCreateSep ) |
|
2138 receiver:self. |
|
2139 |
|
2140 menu subMenuAt:#create put:subm. |
|
2141 ^ menu. |
|
2142 |
|
2143 "Modified: 6.7.1997 / 12:51:28 / cg" |
|
2144 ! ! |
2380 ! ! |
2145 |
2381 |
2146 !MenuEditor::Painter methodsFor:'private'! |
2382 !MenuEditor::Painter methodsFor:'private'! |
2147 |
2383 |
2148 addElement:something |
2384 addElement:something |