229 ! |
237 ! |
230 |
238 |
231 iconAlignTB |
239 iconAlignTB |
232 ^ Image fromFile:'b_alignTB.xbm' |
240 ^ Image fromFile:'b_alignTB.xbm' |
233 |
241 |
|
242 ! |
|
243 |
|
244 iconStepDown |
|
245 IconStepDown isNil ifTrue:[ |
|
246 IconStepDown := self iconStepUp flipHorizontal |
|
247 ]. |
|
248 ^ IconStepDown |
|
249 |
|
250 ! |
|
251 |
|
252 iconStepIn |
|
253 IconStepIn isNil ifTrue:[ |
|
254 IconStepIn := ((Image fromFile:'stepIn.xpm') rotated:90) flipHorizontal |
|
255 ]. |
|
256 ^ IconStepIn |
|
257 |
|
258 ! |
|
259 |
|
260 iconStepOut |
|
261 IconStepOut isNil ifTrue:[ |
|
262 IconStepOut := ((Image fromFile:'stepOut.xpm') rotated:90) flipHorizontal |
|
263 ]. |
|
264 ^ IconStepOut |
|
265 ! |
|
266 |
|
267 iconStepUp |
|
268 IconStepUp isNil ifTrue:[ |
|
269 IconStepUp := ((Image fromFile:'stepOver.xpm') rotated:90) flipHorizontal flipVertical |
|
270 ]. |
|
271 ^ IconStepUp |
|
272 |
234 ! ! |
273 ! ! |
235 |
274 |
236 !UIPainter class methodsFor:'interface specs'! |
275 !UIPainter class methodsFor:'interface specs'! |
237 |
|
238 menuAlignment |
|
239 "this window spec was automatically generated by the ST/X MenuEditor" |
|
240 |
|
241 "do not manually edit this - the builder may not be able to |
|
242 handle the specification if its corrupted." |
|
243 |
|
244 " |
|
245 MenuEditor new openOnClass:UIPainter andSelector:#menuAlignment |
|
246 (Menu new fromLiteralArrayEncoding:(UIPainter menuAlignment)) startUp |
|
247 " |
|
248 |
|
249 <resource: #menu> |
|
250 |
|
251 ^ |
|
252 |
|
253 #(#Menu |
|
254 |
|
255 #( |
|
256 #(#MenuItem |
|
257 #'label:' 'align left' |
|
258 #'value:' #alignSelectionLeft |
|
259 #'enabled:' #enableChannel |
|
260 #'activeHelpKey:' #alignSelectionLeft |
|
261 #'labelImage:' |
|
262 #(#ResourceRetriever |
|
263 nil #iconAlignL |
|
264 ) |
|
265 ) |
|
266 #(#MenuItem |
|
267 #'label:' 'align right' |
|
268 #'value:' #alignSelectionRight |
|
269 #'enabled:' #enableChannel |
|
270 #'activeHelpKey:' #alignSelectionRight |
|
271 #'labelImage:' |
|
272 #(#ResourceRetriever |
|
273 nil #iconAlignR |
|
274 ) |
|
275 ) |
|
276 #(#MenuItem |
|
277 #'label:' 'align left & right' |
|
278 #'value:' #alignSelectionLeftAndRight |
|
279 #'enabled:' #enableChannel |
|
280 #'activeHelpKey:' #alignSelectionLeftAndRight |
|
281 #'labelImage:' |
|
282 #(#ResourceRetriever |
|
283 nil #iconAlignLR |
|
284 ) |
|
285 ) |
|
286 #(#MenuItem |
|
287 #'label:' 'align top' |
|
288 #'value:' #alignSelectionTop |
|
289 #'enabled:' #enableChannel |
|
290 #'activeHelpKey:' #alignSelectionTop |
|
291 #'labelImage:' |
|
292 #(#ResourceRetriever |
|
293 nil #iconAlignT |
|
294 ) |
|
295 ) |
|
296 #(#MenuItem |
|
297 #'label:' 'align bottom' |
|
298 #'value:' #alignSelectionBottom |
|
299 #'enabled:' #enableChannel |
|
300 #'activeHelpKey:' #alignSelectionBottom |
|
301 #'labelImage:' |
|
302 #(#ResourceRetriever |
|
303 nil #iconAlignB |
|
304 ) |
|
305 ) |
|
306 #(#MenuItem |
|
307 #'label:' 'align top & bottom' |
|
308 #'value:' #alignSelectionTopAndBottom |
|
309 #'enabled:' #enableChannel |
|
310 #'activeHelpKey:' #alignSelectionTopAndBottom |
|
311 #'labelImage:' |
|
312 #(#ResourceRetriever |
|
313 nil #iconAlignTB |
|
314 ) |
|
315 ) |
|
316 #(#MenuItem |
|
317 #'label:' 'align centered horizontal' |
|
318 #'value:' #alignSelectionCenterHor |
|
319 #'enabled:' #enableChannel |
|
320 #'activeHelpKey:' #alignSelectionCenterHor |
|
321 #'labelImage:' |
|
322 #(#ResourceRetriever |
|
323 nil #iconAlignCenterH |
|
324 ) |
|
325 ) |
|
326 #(#MenuItem |
|
327 #'label:' 'align centered vertical' |
|
328 #'value:' #alignSelectionCenterVer |
|
329 #'enabled:' #enableChannel |
|
330 #'activeHelpKey:' #alignSelectionCenterVer |
|
331 #'labelImage:' |
|
332 #(#ResourceRetriever |
|
333 nil #iconAlignCenterV |
|
334 ) |
|
335 ) |
|
336 ) |
|
337 #( 3 3 ) |
|
338 nil |
|
339 ) |
|
340 ! |
|
341 |
|
342 menuPullDown |
|
343 "this window spec was automatically generated by the ST/X MenuEditor" |
|
344 |
|
345 "do not manually edit this - the builder may not be able to |
|
346 handle the specification if its corrupted." |
|
347 |
|
348 " |
|
349 MenuEditor new openOnClass:UIPainter andSelector:#menuPullDown |
|
350 (Menu new fromLiteralArrayEncoding:(UIPainter menuPullDown)) startUp |
|
351 " |
|
352 |
|
353 <resource: #menu> |
|
354 |
|
355 ^ |
|
356 |
|
357 #(#Menu |
|
358 |
|
359 #( |
|
360 #(#MenuItem |
|
361 #'label:' 'file' |
|
362 #'value:' #file |
|
363 #'enabled:' #enableChannel |
|
364 #'submenu:' |
|
365 #(#Menu |
|
366 |
|
367 #( |
|
368 #(#MenuItem |
|
369 #'label:' 'new' |
|
370 #'value:' #doNew |
|
371 ) |
|
372 #(#MenuItem |
|
373 #'label:' 'from class ...' |
|
374 #'value:' #doFromClass |
|
375 ) |
|
376 #(#MenuItem |
|
377 #'label:' 'pick a view ' |
|
378 #'value:' #doPickAView |
|
379 ) |
|
380 #(#MenuItem |
|
381 #'label:' '-' |
|
382 ) |
|
383 #(#MenuItem |
|
384 #'label:' 'raise' |
|
385 #'value:' #doRaise |
|
386 ) |
|
387 #(#MenuItem |
|
388 #'label:' '=' |
|
389 ) |
|
390 #(#MenuItem |
|
391 #'label:' 'quit' |
|
392 #'value:' #closeRequest |
|
393 ) |
|
394 ) nil |
|
395 nil |
|
396 ) |
|
397 ) |
|
398 #(#MenuItem |
|
399 #'label:' 'misc' |
|
400 #'value:' #misc |
|
401 #'enabled:' #enableChannel |
|
402 #'submenu:' |
|
403 #(#Menu |
|
404 |
|
405 #( |
|
406 #(#MenuItem |
|
407 #'label:' 'grid' |
|
408 #'value:' #grid |
|
409 #'submenu:' |
|
410 #(#Menu |
|
411 |
|
412 #( |
|
413 #(#MenuItem |
|
414 #'label:' 'show' |
|
415 #'indication:' #'gridShown:' |
|
416 ) |
|
417 #(#MenuItem |
|
418 #'label:' 'align' |
|
419 #'indication:' #'gridAlign:' |
|
420 ) |
|
421 ) nil |
|
422 nil |
|
423 ) |
|
424 ) |
|
425 #(#MenuItem |
|
426 #'label:' 'undo' |
|
427 #'value:' #undo |
|
428 #'submenu:' |
|
429 #(#Menu |
|
430 |
|
431 #( |
|
432 #(#MenuItem |
|
433 #'label:' 'last' |
|
434 #'value:' #undoLast |
|
435 ) |
|
436 #(#MenuItem |
|
437 #'label:' 'menu' |
|
438 #'value:' #openUndoMenu |
|
439 ) |
|
440 #(#MenuItem |
|
441 #'label:' '-' |
|
442 ) |
|
443 #(#MenuItem |
|
444 #'label:' 'delete' |
|
445 #'value:' #removeUndoHistory |
|
446 ) |
|
447 ) nil |
|
448 nil |
|
449 ) |
|
450 ) |
|
451 ) nil |
|
452 nil |
|
453 ) |
|
454 ) |
|
455 #(#MenuItem |
|
456 #'label:' 'code' |
|
457 #'value:' #code |
|
458 #'enabled:' #enableChannel |
|
459 #'submenu:' |
|
460 #(#Menu |
|
461 |
|
462 #( |
|
463 #(#MenuItem |
|
464 #'label:' 'class && method ...' |
|
465 #'value:' #defineClassAndSelector |
|
466 ) |
|
467 #(#MenuItem |
|
468 #'label:' '=' |
|
469 ) |
|
470 #(#MenuItem |
|
471 #'label:' 'install window spec.' |
|
472 #'value:' #doInstallSpec |
|
473 #'enabled:' #hasSpecClassAndSelector |
|
474 ) |
|
475 #(#MenuItem |
|
476 #'label:' 'install help spec.' |
|
477 #'value:' #doInstallHelp |
|
478 #'enabled:' #hasSpecClass |
|
479 ) |
|
480 #(#MenuItem |
|
481 #'label:' '-' |
|
482 ) |
|
483 #(#MenuItem |
|
484 #'label:' 'install aspects' |
|
485 #'value:' #doInstallAspects |
|
486 #'enabled:' #hasSpecClass |
|
487 ) |
|
488 #(#MenuItem |
|
489 #'label:' '=' |
|
490 ) |
|
491 #(#MenuItem |
|
492 #'label:' 'show window spec.' |
|
493 #'value:' #doWindowSpec |
|
494 ) |
|
495 #(#MenuItem |
|
496 #'label:' '=' |
|
497 ) |
|
498 #(#MenuItem |
|
499 #'label:' 'browse application' |
|
500 #'value:' #doBrowseAppClass |
|
501 #'enabled:' #hasSpecClass |
|
502 ) |
|
503 #(#MenuItem |
|
504 #'label:' 'start application' |
|
505 #'value:' #doStartApplication |
|
506 #'enabled:' #hasSpecClass |
|
507 ) |
|
508 ) nil |
|
509 nil |
|
510 ) |
|
511 ) |
|
512 #(#MenuItem |
|
513 #'label:' 'test' |
|
514 #'nameKey:' #test |
|
515 #'value:' #test |
|
516 #'submenu:' |
|
517 #(#Menu |
|
518 |
|
519 #( |
|
520 #(#MenuItem |
|
521 #'label:' 'test mode' |
|
522 #'indication:' #'testMode:' |
|
523 ) |
|
524 ) nil |
|
525 nil |
|
526 ) |
|
527 ) |
|
528 ) nil |
|
529 nil |
|
530 ) |
|
531 ! |
|
532 |
276 |
533 nameAndSelectorSpec |
277 nameAndSelectorSpec |
534 "this window spec was automatically generated by the ST/X UIPainter" |
278 "this window spec was automatically generated by the ST/X UIPainter" |
535 |
279 |
536 "do not manually edit this - the painter/builder may not be able to |
280 "do not manually edit this - the painter/builder may not be able to |
655 <resource: #canvas> |
399 <resource: #canvas> |
656 |
400 |
657 ^ |
401 ^ |
658 |
402 |
659 #(#FullSpec |
403 #(#FullSpec |
660 #'flags:' 0 |
|
661 #'window:' |
404 #'window:' |
662 #(#WindowSpec |
405 #(#WindowSpec |
663 #'name:' 'uIPainterView' |
406 #'name:' 'uIPainterView' |
664 #'layout:' #(#LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0) |
407 #'layout:' #(#LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0) |
665 #'flags:' 0 |
|
666 #'label:' 'Tree-View' |
408 #'label:' 'Tree-View' |
667 #'bounds:' #(#Rectangle 0 0 524 456) |
409 #'bounds:' #(#Rectangle 0 0 561 450) |
668 ) |
410 ) |
669 #'component:' |
411 #'component:' |
670 #(#SpecCollection |
412 #(#SpecCollection |
671 #'collection:' |
413 #'collection:' |
672 #( |
414 #( |
673 #(#MenuPanelSpec |
415 #(#MenuPanelSpec |
674 #'name:' 'menuPullDown' |
416 #'name:' 'menuPullDown' |
675 #'layout:' #(#LayoutFrame 0 0.0 0 0.0 0 1.0 25 0) |
417 #'layout:' #(#LayoutFrame 0 0.0 0 0.0 0 1.0 25 0) |
676 #'flags:' 0 |
|
677 #'tabable:' true |
418 #'tabable:' true |
678 #'menu:' #menuPullDown |
419 #'menu:' #menuPullDown |
679 ) |
420 ) |
680 #(#MenuPanelSpec |
|
681 #'name:' 'menuAlignment' |
|
682 #'layout:' #(#LayoutFrame 0 0.0 29 0 233 0 54 0) |
|
683 #'flags:' 0 |
|
684 #'tabable:' true |
|
685 #'menu:' #menuAlignment |
|
686 #'showSeparatingLines:' true |
|
687 ) |
|
688 #(#PanelViewSpec |
|
689 #'name:' 'panelViewButtons' |
|
690 #'layout:' #(#LayoutFrame -125 1.0 25 0.0 0 1.0 57 0.0) |
|
691 #'flags:' 0 |
|
692 #'component:' |
|
693 #(#SpecCollection |
|
694 #'collection:' |
|
695 #( |
|
696 #(#ActionButtonSpec |
|
697 #'name:' 'moveLeft' |
|
698 #'flags:' 0 |
|
699 #'label:' '' |
|
700 #'translateLabel:' true |
|
701 #'labelChannel:' #'LABELb_moveLeft.xbm' |
|
702 #'tabable:' true |
|
703 #'defaultable:' true |
|
704 #'model:' #moveSelectionLeft |
|
705 #'isTriggerOnDown:' true |
|
706 #'enableChannel:' #enableChannel |
|
707 #'extent:' #(#Point 26 24) |
|
708 ) |
|
709 #(#ActionButtonSpec |
|
710 #'name:' 'moveRight' |
|
711 #'flags:' 0 |
|
712 #'label:' '' |
|
713 #'translateLabel:' true |
|
714 #'labelChannel:' #'LABELb_moveRight.xbm' |
|
715 #'tabable:' true |
|
716 #'defaultable:' true |
|
717 #'model:' #moveSelectionRight |
|
718 #'isTriggerOnDown:' true |
|
719 #'enableChannel:' #enableChannel |
|
720 #'extent:' #(#Point 26 24) |
|
721 ) |
|
722 #(#ActionButtonSpec |
|
723 #'name:' 'moveUp' |
|
724 #'flags:' 0 |
|
725 #'label:' '' |
|
726 #'translateLabel:' true |
|
727 #'labelChannel:' #'LABELb_moveUp.xbm' |
|
728 #'tabable:' true |
|
729 #'defaultable:' true |
|
730 #'model:' #moveSelectionUp |
|
731 #'isTriggerOnDown:' true |
|
732 #'enableChannel:' #enableChannel |
|
733 #'extent:' #(#Point 26 24) |
|
734 ) |
|
735 #(#ActionButtonSpec |
|
736 #'name:' 'moveDown' |
|
737 #'flags:' 0 |
|
738 #'label:' '' |
|
739 #'translateLabel:' true |
|
740 #'labelChannel:' #'LABELb_moveDown.xbm' |
|
741 #'tabable:' true |
|
742 #'defaultable:' true |
|
743 #'model:' #moveSelectionDown |
|
744 #'isTriggerOnDown:' true |
|
745 #'enableChannel:' #enableChannel |
|
746 #'extent:' #(#Point 26 24) |
|
747 ) |
|
748 ) |
|
749 ) |
|
750 #'level:' 1 |
|
751 #'horizontalLayout:' #fitSpace |
|
752 #'verticalLayout:' #fitSpace |
|
753 #'horizontalSpace:' 4 |
|
754 #'verticalSpace:' 4 |
|
755 ) |
|
756 #(#SequenceViewSpec |
|
757 #'name:' 'objectTree' |
|
758 #'layout:' #(#LayoutFrame 0 0.0 59 0.0 0 0.35 -25 1.0) |
|
759 #'flags:' 0 |
|
760 #'enableChannel:' #enableChannel |
|
761 #'tabable:' true |
|
762 #'menu:' #objectListMenu |
|
763 #'model:' #objectList |
|
764 #'hasHorizontalScrollBar:' true |
|
765 #'hasVerticalScrollBar:' true |
|
766 #'miniScrollerHorizontal:' true |
|
767 #'isMultiSelect:' true |
|
768 #'doubleClickSelector:' #doubleClick |
|
769 #'useIndex:' true |
|
770 ) |
|
771 #(#NoteBookViewSpec |
421 #(#NoteBookViewSpec |
772 #'name:' 'noteBook' |
422 #'name:' 'noteBook' |
773 #'layout:' #(#LayoutFrame 0 0.35 59 0.0 0 1.0 -55 1.0) |
423 #'layout:' #(#LayoutFrame 0 0.4 59 0.0 0 1.0 -55 1.0) |
774 #'flags:' 0 |
|
775 #'enableChannel:' #enableChannel |
424 #'enableChannel:' #enableChannel |
776 #'tabable:' true |
425 #'tabable:' true |
777 #'menu:' #tabList |
426 #'menu:' #tabList |
778 #'style:' |
427 #'style:' |
779 #(#FontDescription |
428 #(#FontDescription |
819 #'verticalSpace:' 3 |
465 #'verticalSpace:' 3 |
820 ) |
466 ) |
821 #(#LabelSpec |
467 #(#LabelSpec |
822 #'name:' 'helpInfo' |
468 #'name:' 'helpInfo' |
823 #'layout:' #(#LayoutFrame 2 0.0 -25 1.0 -2 1.0 -2 1.0) |
469 #'layout:' #(#LayoutFrame 2 0.0 -25 1.0 -2 1.0 -2 1.0) |
824 #'flags:' 0 |
|
825 #'label:' '' |
|
826 #'level:' -1 |
470 #'level:' -1 |
827 #'adjust:' #left |
471 #'adjust:' #left |
828 ) |
472 ) |
829 #(#ToggleSpec |
473 #(#ToggleSpec |
830 #'name:' 'galleryLabel' |
474 #'name:' 'galleryLabel' |
831 #'layout:' #(#LayoutFrame -162 1.0 1 0 -82 1.0 23 0) |
475 #'layout:' #(#LayoutFrame -162 1.0 1 0 -82 1.0 23 0) |
832 #'flags:' 0 |
|
833 #'label:' 'Gallery' |
476 #'label:' 'Gallery' |
834 #'model:' #galleryShown |
477 #'model:' #galleryShown |
835 #'isTriggerOnDown:' true |
478 #'isTriggerOnDown:' true |
836 #'showLamp:' true |
479 #'showLamp:' true |
837 #'lampColor:' #(#Color 100.0 100.0 0.0) |
480 #'lampColor:' #(#Color 100.0 100.0 0.0) |
838 ) |
481 ) |
839 #(#ToggleSpec |
482 #(#ToggleSpec |
840 #'name:' 'painterLabel' |
483 #'name:' 'painterLabel' |
841 #'layout:' #(#LayoutFrame -81 1.0 1 0 -1 1.0 23 0) |
484 #'layout:' #(#LayoutFrame -81 1.0 1 0 -1 1.0 23 0) |
842 #'flags:' 0 |
|
843 #'label:' 'Painter' |
485 #'label:' 'Painter' |
844 #'model:' #painterShown |
486 #'model:' #painterShown |
845 #'isTriggerOnDown:' true |
487 #'isTriggerOnDown:' true |
846 #'showLamp:' true |
488 #'showLamp:' true |
847 #'lampColor:' #(#Color 100.0 100.0 0.0) |
489 #'lampColor:' #(#Color 100.0 100.0 0.0) |
848 ) |
490 ) |
|
491 #(#ArbitraryComponentSpec |
|
492 #'name:' 'treeView' |
|
493 #'layout:' #(#LayoutFrame 0 0.0 59 0 0 0.4 -25 1.0) |
|
494 #'menu:' #menuCanvas |
|
495 #'hasHorizontalScrollBar:' true |
|
496 #'hasVerticalScrollBar:' true |
|
497 #'miniScrollerHorizontal:' true |
|
498 #'miniScrollerVertical:' true |
|
499 #'component:' #treeView |
|
500 #'hasBorder:' false |
|
501 ) |
|
502 #(#HorizontalPanelViewSpec |
|
503 #'name:' 'menuContainer' |
|
504 #'layout:' #(#LayoutFrame 0 0.0 26 0 0 1.0 58 0) |
|
505 #'component:' |
|
506 #(#SpecCollection |
|
507 #'collection:' |
|
508 #( |
|
509 #(#MenuPanelSpec |
|
510 #'name:' 'menuMove' |
|
511 #'menu:' #menuMove |
|
512 #'showSeparatingLines:' true |
|
513 #'extent:' #(#Point 123 32) |
|
514 ) |
|
515 #(#MenuPanelSpec |
|
516 #'name:' 'menuAlignment' |
|
517 #'tabable:' true |
|
518 #'menu:' #menuAlignment |
|
519 #'showSeparatingLines:' true |
|
520 #'extent:' #(#Point 233 32) |
|
521 ) |
|
522 #(#HorizontalPanelViewSpec |
|
523 #'name:' 'panelViewButtons' |
|
524 #'component:' |
|
525 #(#SpecCollection |
|
526 #'collection:' |
|
527 #( |
|
528 #(#ArrowButtonSpec |
|
529 #'name:' 'moveLeft' |
|
530 #'tabable:' true |
|
531 #'model:' #moveSelectionLeft |
|
532 #'isTriggerOnDown:' true |
|
533 #'enableChannel:' #hasValidSelection |
|
534 #'direction:' #left |
|
535 #'extent:' #(#Point 25 24) |
|
536 ) |
|
537 #(#ArrowButtonSpec |
|
538 #'name:' 'moveRight' |
|
539 #'model:' #moveSelectionRight |
|
540 #'isTriggerOnDown:' true |
|
541 #'enableChannel:' #hasValidSelection |
|
542 #'direction:' #right |
|
543 #'extent:' #(#Point 26 24) |
|
544 ) |
|
545 #(#ArrowButtonSpec |
|
546 #'name:' 'moveDown' |
|
547 #'model:' #moveSelectionDown |
|
548 #'isTriggerOnDown:' true |
|
549 #'enableChannel:' #hasValidSelection |
|
550 #'direction:' #down |
|
551 #'extent:' #(#Point 26 24) |
|
552 ) |
|
553 #(#ArrowButtonSpec |
|
554 #'name:' 'moveUp' |
|
555 #'model:' #moveSelectionUp |
|
556 #'isTriggerOnDown:' true |
|
557 #'enableChannel:' #hasValidSelection |
|
558 #'direction:' #up |
|
559 #'extent:' #(#Point 22 24) |
|
560 ) |
|
561 ) |
|
562 ) |
|
563 #'level:' 1 |
|
564 #'horizontalLayout:' #spreadSpace |
|
565 #'verticalLayout:' #fitSpace |
|
566 #'horizontalSpace:' 4 |
|
567 #'verticalSpace:' 4 |
|
568 #'extent:' #(#Point 125 32) |
|
569 ) |
|
570 ) |
|
571 ) |
|
572 #'horizontalLayout:' #spread |
|
573 #'verticalLayout:' #fit |
|
574 #'horizontalSpace:' 3 |
|
575 #'verticalSpace:' 3 |
|
576 ) |
849 ) |
577 ) |
850 ) |
578 ) |
851 ) |
579 ) |
852 ! ! |
580 ! ! |
853 |
581 |
|
582 !UIPainter class methodsFor:'menu specs'! |
|
583 |
|
584 menuAlignment |
|
585 "this window spec was automatically generated by the ST/X MenuEditor" |
|
586 |
|
587 "do not manually edit this - the builder may not be able to |
|
588 handle the specification if its corrupted." |
|
589 |
|
590 " |
|
591 MenuEditor new openOnClass:UIPainter andSelector:#menuAlignment |
|
592 (Menu new fromLiteralArrayEncoding:(UIPainter menuAlignment)) startUp |
|
593 " |
|
594 |
|
595 <resource: #menu> |
|
596 |
|
597 ^ |
|
598 |
|
599 #(#Menu |
|
600 |
|
601 #( |
|
602 #(#MenuItem |
|
603 #'label:' 'align left' |
|
604 #'value:' #alignSelectionLeft |
|
605 #'enabled:' #hasValidSelection |
|
606 #'activeHelpKey:' #alignSelectionLeft |
|
607 #'labelImage:' |
|
608 #(#ResourceRetriever |
|
609 nil #iconAlignL |
|
610 ) |
|
611 ) |
|
612 #(#MenuItem |
|
613 #'label:' 'align right' |
|
614 #'value:' #alignSelectionRight |
|
615 #'enabled:' #hasValidSelection |
|
616 #'activeHelpKey:' #alignSelectionRight |
|
617 #'labelImage:' |
|
618 #(#ResourceRetriever |
|
619 nil #iconAlignR |
|
620 ) |
|
621 ) |
|
622 #(#MenuItem |
|
623 #'label:' 'align left & right' |
|
624 #'value:' #alignSelectionLeftAndRight |
|
625 #'enabled:' #hasValidSelection |
|
626 #'activeHelpKey:' #alignSelectionLeftAndRight |
|
627 #'labelImage:' |
|
628 #(#ResourceRetriever |
|
629 nil #iconAlignLR |
|
630 ) |
|
631 ) |
|
632 #(#MenuItem |
|
633 #'label:' 'align top' |
|
634 #'value:' #alignSelectionTop |
|
635 #'enabled:' #hasValidSelection |
|
636 #'activeHelpKey:' #alignSelectionTop |
|
637 #'labelImage:' |
|
638 #(#ResourceRetriever |
|
639 nil #iconAlignT |
|
640 ) |
|
641 ) |
|
642 #(#MenuItem |
|
643 #'label:' 'align bottom' |
|
644 #'value:' #alignSelectionBottom |
|
645 #'enabled:' #hasValidSelection |
|
646 #'activeHelpKey:' #alignSelectionBottom |
|
647 #'labelImage:' |
|
648 #(#ResourceRetriever |
|
649 nil #iconAlignB |
|
650 ) |
|
651 ) |
|
652 #(#MenuItem |
|
653 #'label:' 'align top & bottom' |
|
654 #'value:' #alignSelectionTopAndBottom |
|
655 #'enabled:' #hasValidSelection |
|
656 #'activeHelpKey:' #alignSelectionTopAndBottom |
|
657 #'labelImage:' |
|
658 #(#ResourceRetriever |
|
659 nil #iconAlignTB |
|
660 ) |
|
661 ) |
|
662 #(#MenuItem |
|
663 #'label:' 'align centered horizontal' |
|
664 #'value:' #alignSelectionCenterHor |
|
665 #'enabled:' #hasValidSelection |
|
666 #'activeHelpKey:' #alignSelectionCenterHor |
|
667 #'labelImage:' |
|
668 #(#ResourceRetriever |
|
669 nil #iconAlignCenterH |
|
670 ) |
|
671 ) |
|
672 #(#MenuItem |
|
673 #'label:' 'align centered vertical' |
|
674 #'value:' #alignSelectionCenterVer |
|
675 #'enabled:' #hasValidSelection |
|
676 #'activeHelpKey:' #alignSelectionCenterVer |
|
677 #'labelImage:' |
|
678 #(#ResourceRetriever |
|
679 nil #iconAlignCenterV |
|
680 ) |
|
681 ) |
|
682 ) |
|
683 #( 3 3 ) |
|
684 nil |
|
685 ) |
|
686 ! |
|
687 |
|
688 menuCanvas |
|
689 "this window spec was automatically generated by the ST/X MenuEditor" |
|
690 |
|
691 "do not manually edit this - the builder may not be able to |
|
692 handle the specification if its corrupted." |
|
693 |
|
694 " |
|
695 MenuEditor new openOnClass:UIPainter andSelector:#menuCanvas |
|
696 (Menu new fromLiteralArrayEncoding:(UIPainter menuCanvas)) startUp |
|
697 " |
|
698 |
|
699 <resource: #menu> |
|
700 |
|
701 ^ |
|
702 |
|
703 #(#Menu |
|
704 |
|
705 #( |
|
706 #(#MenuItem |
|
707 #'label:' 'copy' |
|
708 #'value:' #copySelection |
|
709 #'shortcutKeyCharacter:' #Copy |
|
710 ) |
|
711 #(#MenuItem |
|
712 #'label:' 'cut' |
|
713 #'value:' #deleteSelection |
|
714 #'shortcutKeyCharacter:' #Cut |
|
715 ) |
|
716 #(#MenuItem |
|
717 #'label:' 'paste' |
|
718 #'nameKey:' #paste |
|
719 #'value:' #paste |
|
720 #'submenu:' |
|
721 #(#Menu |
|
722 |
|
723 #( |
|
724 #(#MenuItem |
|
725 #'label:' 'paste' |
|
726 #'value:' #pasteBuffer |
|
727 #'activeHelpKey:' #pasteBuffer |
|
728 #'shortcutKeyCharacter:' #Paste |
|
729 ) |
|
730 #(#MenuItem |
|
731 #'label:' 'keep layout' |
|
732 #'value:' #pasteWithLayout |
|
733 #'activeHelpKey:' #pasteWithLayout |
|
734 ) |
|
735 ) nil |
|
736 nil |
|
737 ) |
|
738 ) |
|
739 #(#MenuItem |
|
740 #'label:' '-' |
|
741 ) |
|
742 #(#MenuItem |
|
743 #'label:' 'undo' |
|
744 #'nameKey:' #undo |
|
745 #'value:' #undoLast |
|
746 ) |
|
747 #(#MenuItem |
|
748 #'label:' '-' |
|
749 ) |
|
750 #(#MenuItem |
|
751 #'label:' 'dimension' |
|
752 #'value:' #dimension |
|
753 #'submenu:' |
|
754 #(#Menu |
|
755 |
|
756 #( |
|
757 #(#MenuItem |
|
758 #'label:' 'default extent' |
|
759 #'value:' #setToDefaultExtent |
|
760 #'activeHelpKey:' #setToDefaultExtent |
|
761 ) |
|
762 #(#MenuItem |
|
763 #'label:' 'default width' |
|
764 #'value:' #setToDefaultWidth |
|
765 #'activeHelpKey:' #setToDefaultWidth |
|
766 ) |
|
767 #(#MenuItem |
|
768 #'label:' 'default height' |
|
769 #'value:' #setToDefaultHeight |
|
770 #'activeHelpKey:' #setToDefaultHeight |
|
771 ) |
|
772 #(#MenuItem |
|
773 #'label:' 'copy extent' |
|
774 #'value:' #copyExtent |
|
775 #'activeHelpKey:' #copyExtent |
|
776 ) |
|
777 #(#MenuItem |
|
778 #'label:' 'paste extent' |
|
779 #'value:' #pasteExtent |
|
780 #'activeHelpKey:' #pasteExtent |
|
781 ) |
|
782 #(#MenuItem |
|
783 #'label:' 'paste width' |
|
784 #'value:' #pasteWidth |
|
785 #'activeHelpKey:' #pasteWidth |
|
786 ) |
|
787 #(#MenuItem |
|
788 #'label:' 'paste height' |
|
789 #'value:' #pasteHeight |
|
790 #'activeHelpKey:' #pasteHeight |
|
791 ) |
|
792 #(#MenuItem |
|
793 #'label:' 'copy layout' |
|
794 #'value:' #copyLayout |
|
795 #'activeHelpKey:' #copyLayout |
|
796 ) |
|
797 #(#MenuItem |
|
798 #'label:' 'paste layout' |
|
799 #'value:' #pasteLayout |
|
800 #'activeHelpKey:' #pasteLayout |
|
801 ) |
|
802 ) |
|
803 #(3 1 3) |
|
804 nil |
|
805 ) |
|
806 ) |
|
807 #(#MenuItem |
|
808 #'label:' 'align' |
|
809 #'value:' #align |
|
810 #'submenu:' |
|
811 #(#Menu |
|
812 |
|
813 #( |
|
814 #(#MenuItem |
|
815 #'label:' 'align left' |
|
816 #'value:' #alignSelectionLeft |
|
817 #'activeHelpKey:' #alignSelectionLeft |
|
818 #'labelImage:' |
|
819 #(#ResourceRetriever |
|
820 #UIPainter #iconAlignL |
|
821 'align left' |
|
822 ) |
|
823 ) |
|
824 #(#MenuItem |
|
825 #'label:' 'align right' |
|
826 #'value:' #alignSelectionRight |
|
827 #'activeHelpKey:' #alignSelectionRight |
|
828 #'labelImage:' |
|
829 #(#ResourceRetriever |
|
830 #UIPainter #iconAlignR |
|
831 'align right' |
|
832 ) |
|
833 ) |
|
834 #(#MenuItem |
|
835 #'label:' 'align left & right' |
|
836 #'value:' #alignSelectionLeftAndRight |
|
837 #'activeHelpKey:' #alignSelectionLeftAndRight |
|
838 #'labelImage:' |
|
839 #(#ResourceRetriever |
|
840 #UIPainter #iconAlignLR |
|
841 'align left & right' |
|
842 ) |
|
843 ) |
|
844 #(#MenuItem |
|
845 #'label:' 'align top' |
|
846 #'value:' #alignSelectionTop |
|
847 #'activeHelpKey:' #alignSelectionTop |
|
848 #'labelImage:' |
|
849 #(#ResourceRetriever |
|
850 #UIPainter #iconAlignT |
|
851 'align top' |
|
852 ) |
|
853 ) |
|
854 #(#MenuItem |
|
855 #'label:' 'align bottom' |
|
856 #'value:' #alignSelectionBottom |
|
857 #'activeHelpKey:' #alignSelectionBottom |
|
858 #'labelImage:' |
|
859 #(#ResourceRetriever |
|
860 #UIPainter #iconAlignB |
|
861 'align bottom' |
|
862 ) |
|
863 ) |
|
864 #(#MenuItem |
|
865 #'label:' 'align top & bottom' |
|
866 #'value:' #alignSelectionTopAndBottom |
|
867 #'activeHelpKey:' #alignSelectionTopAndBottom |
|
868 #'labelImage:' |
|
869 #(#ResourceRetriever |
|
870 #UIPainter #iconAlignTB |
|
871 'align top & bottom' |
|
872 ) |
|
873 ) |
|
874 #(#MenuItem |
|
875 #'label:' 'align centered horizontal' |
|
876 #'value:' #alignSelectionCenterHor |
|
877 #'activeHelpKey:' #alignSelectionCenterHor |
|
878 #'labelImage:' |
|
879 #(#ResourceRetriever |
|
880 #UIPainter #iconAlignCenterH |
|
881 'align centered horizontal' |
|
882 ) |
|
883 ) |
|
884 #(#MenuItem |
|
885 #'label:' 'align centered vertical' |
|
886 #'value:' #alignSelectionCenterVer |
|
887 #'activeHelpKey:' #alignSelectionCenterVer |
|
888 #'labelImage:' |
|
889 #(#ResourceRetriever |
|
890 #UIPainter #iconAlignCenterV |
|
891 'align centered vertical' |
|
892 ) |
|
893 ) |
|
894 #(#MenuItem |
|
895 #'label:' 'spread horizontal' |
|
896 #'value:' #spreadSelectionHor |
|
897 #'activeHelpKey:' #spreadSelectionHor |
|
898 ) |
|
899 #(#MenuItem |
|
900 #'label:' 'spread vertical' |
|
901 #'value:' #spreadSelectionVer |
|
902 #'activeHelpKey:' #spreadSelectionVer |
|
903 ) |
|
904 #(#MenuItem |
|
905 #'label:' 'center horizontal in frame' |
|
906 #'value:' #centerSelectionHor |
|
907 #'activeHelpKey:' #centerSelectionHor |
|
908 ) |
|
909 #(#MenuItem |
|
910 #'label:' 'center vertical in frame' |
|
911 #'value:' #centerSelectionVer |
|
912 #'activeHelpKey:' #centerSelectionVer |
|
913 ) |
|
914 ) |
|
915 #(8 2) |
|
916 nil |
|
917 ) |
|
918 ) |
|
919 ) nil |
|
920 nil |
|
921 ) |
|
922 |
|
923 |
|
924 ! |
|
925 |
|
926 menuMove |
|
927 "this window spec was automatically generated by the ST/X MenuEditor" |
|
928 |
|
929 "do not manually edit this - the builder may not be able to |
|
930 handle the specification if its corrupted." |
|
931 |
|
932 " |
|
933 MenuEditor new openOnClass:UIPainter andSelector:#menuMove |
|
934 (Menu new fromLiteralArrayEncoding:(UIPainter menuMove)) startUp |
|
935 " |
|
936 |
|
937 <resource: #menu> |
|
938 |
|
939 ^ |
|
940 |
|
941 #(#Menu |
|
942 |
|
943 #( |
|
944 #(#MenuItem |
|
945 #'label:' 'stepUp' |
|
946 #'value:' #doStepUp |
|
947 #'enabled:' #hasSingleSelection |
|
948 #'labelImage:' |
|
949 #(#ResourceRetriever |
|
950 #UIPainter #iconStepUp |
|
951 ) |
|
952 ) |
|
953 #(#MenuItem |
|
954 #'label:' 'stepDown' |
|
955 #'value:' #doStepDown |
|
956 #'enabled:' #hasSingleSelection |
|
957 #'labelImage:' |
|
958 #(#ResourceRetriever |
|
959 #UIPainter #iconStepDown |
|
960 ) |
|
961 ) |
|
962 #(#MenuItem |
|
963 #'label:' '' |
|
964 ) |
|
965 #(#MenuItem |
|
966 #'label:' 'stepIn' |
|
967 #'value:' #doStepIn |
|
968 #'enabled:' #canStepIn |
|
969 #'labelImage:' |
|
970 #(#ResourceRetriever |
|
971 #UIPainter #iconStepIn |
|
972 ) |
|
973 ) |
|
974 #(#MenuItem |
|
975 #'label:' 'stepOut' |
|
976 #'value:' #doStepOut |
|
977 #'enabled:' #canStepOut |
|
978 #'labelImage:' |
|
979 #(#ResourceRetriever |
|
980 #UIPainter #iconStepOut |
|
981 ) |
|
982 ) |
|
983 ) nil |
|
984 nil |
|
985 ) |
|
986 ! |
|
987 |
|
988 menuPullDown |
|
989 "this window spec was automatically generated by the ST/X MenuEditor" |
|
990 |
|
991 "do not manually edit this - the builder may not be able to |
|
992 handle the specification if its corrupted." |
|
993 |
|
994 " |
|
995 MenuEditor new openOnClass:UIPainter andSelector:#menuPullDown |
|
996 (Menu new fromLiteralArrayEncoding:(UIPainter menuPullDown)) startUp |
|
997 " |
|
998 |
|
999 <resource: #menu> |
|
1000 |
|
1001 ^ |
|
1002 |
|
1003 #(#Menu |
|
1004 |
|
1005 #( |
|
1006 #(#MenuItem |
|
1007 #'label:' 'file' |
|
1008 #'value:' #file |
|
1009 #'enabled:' #enableChannel |
|
1010 #'submenu:' |
|
1011 #(#Menu |
|
1012 |
|
1013 #( |
|
1014 #(#MenuItem |
|
1015 #'label:' 'new' |
|
1016 #'value:' #doNew |
|
1017 ) |
|
1018 #(#MenuItem |
|
1019 #'label:' 'from class ...' |
|
1020 #'value:' #doFromClass |
|
1021 ) |
|
1022 #(#MenuItem |
|
1023 #'label:' 'pick a view ' |
|
1024 #'value:' #doPickAView |
|
1025 ) |
|
1026 #(#MenuItem |
|
1027 #'label:' '-' |
|
1028 ) |
|
1029 #(#MenuItem |
|
1030 #'label:' 'quit' |
|
1031 #'value:' #closeRequest |
|
1032 ) |
|
1033 ) nil |
|
1034 nil |
|
1035 ) |
|
1036 ) |
|
1037 #(#MenuItem |
|
1038 #'label:' 'misc' |
|
1039 #'value:' #misc |
|
1040 #'enabled:' #enableChannel |
|
1041 #'submenu:' |
|
1042 #(#Menu |
|
1043 |
|
1044 #( |
|
1045 #(#MenuItem |
|
1046 #'label:' 'grid' |
|
1047 #'value:' #grid |
|
1048 #'submenu:' |
|
1049 #(#Menu |
|
1050 |
|
1051 #( |
|
1052 #(#MenuItem |
|
1053 #'label:' 'show' |
|
1054 #'indication:' #'gridShown:' |
|
1055 ) |
|
1056 #(#MenuItem |
|
1057 #'label:' 'align' |
|
1058 #'indication:' #'gridAlign:' |
|
1059 ) |
|
1060 ) nil |
|
1061 nil |
|
1062 ) |
|
1063 ) |
|
1064 #(#MenuItem |
|
1065 #'label:' 'undo' |
|
1066 #'value:' #undo |
|
1067 #'submenu:' |
|
1068 #(#Menu |
|
1069 |
|
1070 #( |
|
1071 #(#MenuItem |
|
1072 #'label:' 'last' |
|
1073 #'value:' #undoLast |
|
1074 ) |
|
1075 #(#MenuItem |
|
1076 #'label:' 'menu' |
|
1077 #'value:' #openUndoMenu |
|
1078 ) |
|
1079 #(#MenuItem |
|
1080 #'label:' '-' |
|
1081 ) |
|
1082 #(#MenuItem |
|
1083 #'label:' 'delete' |
|
1084 #'value:' #removeUndoHistory |
|
1085 ) |
|
1086 ) nil |
|
1087 nil |
|
1088 ) |
|
1089 ) |
|
1090 ) nil |
|
1091 nil |
|
1092 ) |
|
1093 ) |
|
1094 #(#MenuItem |
|
1095 #'label:' 'code' |
|
1096 #'value:' #code |
|
1097 #'enabled:' #enableChannel |
|
1098 #'submenu:' |
|
1099 #(#Menu |
|
1100 |
|
1101 #( |
|
1102 #(#MenuItem |
|
1103 #'label:' 'class && method ...' |
|
1104 #'value:' #defineClassAndSelector |
|
1105 ) |
|
1106 #(#MenuItem |
|
1107 #'label:' '=' |
|
1108 ) |
|
1109 #(#MenuItem |
|
1110 #'label:' 'install window spec.' |
|
1111 #'value:' #doInstallSpec |
|
1112 #'enabled:' #hasSpecClassAndSelector |
|
1113 ) |
|
1114 #(#MenuItem |
|
1115 #'label:' 'install help spec.' |
|
1116 #'value:' #doInstallHelp |
|
1117 #'enabled:' #hasSpecClass |
|
1118 ) |
|
1119 #(#MenuItem |
|
1120 #'label:' '-' |
|
1121 ) |
|
1122 #(#MenuItem |
|
1123 #'label:' 'install aspects' |
|
1124 #'value:' #doInstallAspects |
|
1125 #'enabled:' #hasSpecClass |
|
1126 ) |
|
1127 #(#MenuItem |
|
1128 #'label:' '=' |
|
1129 ) |
|
1130 #(#MenuItem |
|
1131 #'label:' 'show window spec.' |
|
1132 #'value:' #doWindowSpec |
|
1133 ) |
|
1134 #(#MenuItem |
|
1135 #'label:' '=' |
|
1136 ) |
|
1137 #(#MenuItem |
|
1138 #'label:' 'browse application' |
|
1139 #'value:' #doBrowseAppClass |
|
1140 #'enabled:' #hasSpecClass |
|
1141 ) |
|
1142 #(#MenuItem |
|
1143 #'label:' 'start application' |
|
1144 #'value:' #doStartApplication |
|
1145 #'enabled:' #hasSpecClass |
|
1146 ) |
|
1147 ) nil |
|
1148 nil |
|
1149 ) |
|
1150 ) |
|
1151 #(#MenuItem |
|
1152 #'label:' 'test' |
|
1153 #'nameKey:' #test |
|
1154 #'value:' #test |
|
1155 #'submenu:' |
|
1156 #(#Menu |
|
1157 |
|
1158 #( |
|
1159 #(#MenuItem |
|
1160 #'label:' 'test mode' |
|
1161 #'indication:' #'testMode:' |
|
1162 ) |
|
1163 ) nil |
|
1164 nil |
|
1165 ) |
|
1166 ) |
|
1167 ) nil |
|
1168 nil |
|
1169 ) |
|
1170 ! ! |
|
1171 |
|
1172 !UIPainter methodsFor:'accessing menu'! |
|
1173 |
|
1174 menuCanvas |
|
1175 ^ [ treeView canvas showMiddleButtonMenu ] |
|
1176 ! |
|
1177 |
|
1178 menuMove |
|
1179 "this window spec was automatically generated by the ST/X MenuEditor" |
|
1180 |
|
1181 ^ self class menuMove |
|
1182 |
|
1183 |
|
1184 ! |
|
1185 |
|
1186 menuPullDown |
|
1187 "this window spec was automatically generated by the ST/X MenuEditor" |
|
1188 |
|
1189 ^ self class menuPullDown |
|
1190 |
|
1191 |
|
1192 ! ! |
|
1193 |
854 !UIPainter methodsFor:'actions'! |
1194 !UIPainter methodsFor:'actions'! |
855 |
1195 |
856 accept |
1196 accept |
857 |layout| |
1197 |layout| |
858 |
|
859 objectList removeDependent:self. |
|
860 |
1198 |
861 self isLayoutToolSelected ifTrue:[ |
1199 self isLayoutToolSelected ifTrue:[ |
862 (layout := layoutTool layout) notNil ifTrue:[ |
1200 (layout := layoutTool layout) notNil ifTrue:[ |
863 layoutTool layoutType == #Extent ifTrue:[ |
1201 layoutTool layoutType == #Extent ifTrue:[ |
864 self painter setExtent:layout |
1202 self painter setExtent:layout |
1052 (holder := builder bindingAt:#tabModel) isNil ifTrue:[ |
1434 (holder := builder bindingAt:#tabModel) isNil ifTrue:[ |
1053 holder := AspectAdaptor new subject:self; forAspect:#tabSelection. |
1435 holder := AspectAdaptor new subject:self; forAspect:#tabSelection. |
1054 builder aspectAt:#tabModel put:holder. |
1436 builder aspectAt:#tabModel put:holder. |
1055 ]. |
1437 ]. |
1056 ^ holder |
1438 ^ holder |
|
1439 ! |
|
1440 |
|
1441 treeView |
|
1442 ^ treeView |
1057 ! ! |
1443 ! ! |
1058 |
1444 |
1059 !UIPainter methodsFor:'binding access'! |
1445 !UIPainter methodsFor:'binding access'! |
1060 |
1446 |
1061 aspectFor:aKey |
1447 aspectFor:aKey |
1062 "check wether aspect is assigned to a label icon |
1448 "aspect for a key |
1063 " |
1449 " |
1064 (aKey startsWith:'LABEL') ifFalse:[ |
1450 ^ aspects at:aKey ifAbsent:[ super aspectFor:aKey ] |
1065 ^ aspects at:aKey ifAbsent:[ super aspectFor:aKey ] |
|
1066 ]. |
|
1067 ^ Image fromFile:(aKey copyFrom:(('LABEL' size) + 1)) |
|
1068 ! ! |
1451 ! ! |
1069 |
1452 |
1070 !UIPainter methodsFor:'change & update'! |
1453 !UIPainter methodsFor:'change & update'! |
1071 |
1454 |
1072 update:something with:aParameter from:someObject |
1455 layoutChanged |
1073 |
1456 self modifiedChannel value ifFalse:[ |
1074 (someObject == objectList and:[something ~~ #list]) ifTrue:[ |
1457 layoutTool update. |
1075 something ~~ #layout ifTrue:[ |
1458 self modifiedChannel value:false |
1076 self objectListChanged |
1459 ] |
1077 ] ifFalse:[ |
1460 ! |
1078 self modifiedChannel value ifTrue:[ |
1461 |
1079 ^ self |
1462 treeViewChanged |
1080 ]. |
1463 "property or selection in the treeView changed |
1081 layoutTool update |
|
1082 ]. |
|
1083 ^ self modifiedChannel value:false |
|
1084 ]. |
|
1085 |
|
1086 self galleryShown == someObject ifTrue:[ |
|
1087 (self galleryShown value) ifTrue:[ |
|
1088 self raiseUIView:(selectionPanel window) |
|
1089 ] ifFalse:[ |
|
1090 self hideUIView:(selectionPanel window) |
|
1091 ]. |
|
1092 ^ self |
|
1093 ]. |
|
1094 |
|
1095 self painterShown == someObject ifTrue:[ |
|
1096 (self painterShown value) ifTrue:[ |
|
1097 self raiseUIView:(self painter topView) |
|
1098 ] ifFalse:[ |
|
1099 self hideUIView:(self painter topView) |
|
1100 ]. |
|
1101 ^ self |
|
1102 ]. |
|
1103 |
|
1104 ! ! |
|
1105 |
|
1106 !UIPainter methodsFor:'event handling'! |
|
1107 |
|
1108 doesNotUnderstand:aMessage |
|
1109 |painter| |
|
1110 |
|
1111 painter := self painter. |
|
1112 |
|
1113 (painter respondsTo:(aMessage selector)) ifTrue:[ |
|
1114 ^ aMessage sendTo:painter |
|
1115 ]. |
|
1116 super doesNotUnderstand:aMessage |
|
1117 |
|
1118 ! |
|
1119 |
|
1120 objectListChanged |
|
1121 "something changed in the painter view |
|
1122 " |
1464 " |
1123 |oldSelection view slices list spec props size nameOfSpec| |
1465 |oldSelection view slices list spec props size nameOfSpec| |
1124 |
1466 |
1125 props := objectList selectedProperty. |
1467 props := treeView propertySelected. |
1126 oldSelection := tabSelection. |
1468 oldSelection := tabSelection. |
1127 tabSelection := nil. |
1469 tabSelection := nil. |
1128 |
1470 |
|
1471 self hasValidSelection value:(treeView hasValidSelection). |
|
1472 self canStepIn value:(treeView canStepIn). |
|
1473 self canStepOut value:(treeView canStepOut). |
|
1474 |
1129 props isNil ifFalse:[ |
1475 props isNil ifFalse:[ |
|
1476 self hasSingleSelection value:true. |
1130 view := props view. |
1477 view := props view. |
1131 spec := props spec copy. |
1478 spec := props spec copy. |
1132 |
1479 |
1133 layoutTool layoutView == view ifFalse:[ |
1480 layoutTool layoutView == view ifFalse:[ |
1134 slices := spec class slices. |
1481 slices := spec class slices. |
1758 v contents:code. |
2151 v contents:code. |
1759 v label:'windowSpec'. |
2152 v label:'windowSpec'. |
1760 |
2153 |
1761 ! ! |
2154 ! ! |
1762 |
2155 |
|
2156 !UIPainter::TreeView class methodsFor:'constants'! |
|
2157 |
|
2158 imageMasterChild |
|
2159 |
|
2160 ImageMasterChild isNil ifTrue:[ |
|
2161 ImageMasterChild := Image fromFile:('xpmBitmaps/document_images/tiny_file_lock.xpm'). |
|
2162 ]. |
|
2163 ^ ImageMasterChild |
|
2164 |
|
2165 " |
|
2166 ImageMasterChild := nil |
|
2167 " |
|
2168 |
|
2169 |
|
2170 ! |
|
2171 |
|
2172 imageMasterParent |
|
2173 |
|
2174 ImageMasterParent isNil ifTrue:[ |
|
2175 ImageMasterParent := Image fromFile:('xpmBitmaps/document_images/tiny_yellow_dir_locked.xpm'). |
|
2176 ]. |
|
2177 ^ ImageMasterParent |
|
2178 |
|
2179 " |
|
2180 ImageMasterParent := nil |
|
2181 " |
|
2182 |
|
2183 |
|
2184 ! ! |
|
2185 |
|
2186 !UIPainter::TreeView class methodsFor:'documentation'! |
|
2187 |
|
2188 documentation |
|
2189 " |
|
2190 selection in tree view; only used by the UIPainter |
|
2191 |
|
2192 [see also:] |
|
2193 SelectionInTreeView |
|
2194 SelectionInTree |
|
2195 TreeItem |
|
2196 UIPainter |
|
2197 |
|
2198 [author:] |
|
2199 Claus Atzkern |
|
2200 " |
|
2201 |
|
2202 |
|
2203 ! ! |
|
2204 |
|
2205 !UIPainter::TreeView methodsFor:'accessing'! |
|
2206 |
|
2207 canvas |
|
2208 "returns the canvas( UIPainter ) |
|
2209 " |
|
2210 ^ model root contents view |
|
2211 |
|
2212 |
|
2213 ! |
|
2214 |
|
2215 canvas:aCanvas |
|
2216 "install canvas( UIPainter ) |
|
2217 " |
|
2218 |props| |
|
2219 |
|
2220 props := UIPainterView::ViewProperty new. |
|
2221 props view:aCanvas. |
|
2222 model root:(TreeItem name:'Canvas' contents:props). |
|
2223 model root expand. |
|
2224 self enableChannel:(aCanvas enableChannel). |
|
2225 |
|
2226 ! ! |
|
2227 |
|
2228 !UIPainter::TreeView methodsFor:'accessing property'! |
|
2229 |
|
2230 propertiesDo:aOneArgBlock |
|
2231 "evaluate the argument a block on each property |
|
2232 " |
|
2233 self allItemsDo:[:anItem| aOneArgBlock value:(anItem contents)] |
|
2234 |
|
2235 |
|
2236 ! |
|
2237 |
|
2238 propertyDetect:aOneArgBlock |
|
2239 "evaluate the block on each property |
|
2240 " |
|
2241 self allItemsDo:[:anItem| |
|
2242 (aOneArgBlock value:(anItem contents)) ifTrue:[^ anItem contents] |
|
2243 ]. |
|
2244 ^ nil |
|
2245 |
|
2246 ! |
|
2247 |
|
2248 propertySelected |
|
2249 "returns current selected property or nil in case of multi selection |
|
2250 or empty selection |
|
2251 " |
|
2252 |idx| |
|
2253 |
|
2254 selection size == 1 ifTrue:[ |
|
2255 (idx := selection first) ~~ 1 ifTrue:[ "canvas: not yet supported" |
|
2256 ^ (listOfNodes at:idx) contents |
|
2257 ] |
|
2258 ]. |
|
2259 ^ nil |
|
2260 |
|
2261 ! ! |
|
2262 |
|
2263 !UIPainter::TreeView methodsFor:'adding & removing'! |
|
2264 |
|
2265 addProperty:aProperty |
|
2266 "add a new item |
|
2267 " |
|
2268 |prnt child canvas view| |
|
2269 |
|
2270 child := TreeItem name:(aProperty name) contents:aProperty. |
|
2271 view := aProperty view. |
|
2272 canvas := self canvas. |
|
2273 |
|
2274 [ ((view := view superView) notNil and:[(prnt := self itemOfView:view) isNil]) |
|
2275 ] whileTrue. |
|
2276 |
|
2277 prnt isNil ifTrue:[ |
|
2278 prnt := model root |
|
2279 ]. |
|
2280 model add:child below:prnt. |
|
2281 |
|
2282 |
|
2283 ! |
|
2284 |
|
2285 removeAll |
|
2286 "remove all items other than canvas |
|
2287 " |
|
2288 lastDrawnMaster := nil. |
|
2289 |
|
2290 self canvas subViews copy do:[:aView| |
|
2291 (aView isKindOf:InputView) ifFalse:[aView destroy] |
|
2292 ]. |
|
2293 model root children:(OrderedCollection new). |
|
2294 model recomputeList. |
|
2295 self selection:nil. |
|
2296 |
|
2297 |
|
2298 ! |
|
2299 |
|
2300 removeView:aView |
|
2301 "remove a view |
|
2302 " |
|
2303 |item spv| |
|
2304 |
|
2305 item := self itemOfView:aView. |
|
2306 |
|
2307 item notNil ifTrue:[ |
|
2308 spv := aView superView. |
|
2309 aView destroy. |
|
2310 spv sizeChanged:nil. |
|
2311 model remove:item |
|
2312 ] |
|
2313 |
|
2314 |
|
2315 ! ! |
|
2316 |
|
2317 !UIPainter::TreeView methodsFor:'canvas selection'! |
|
2318 |
|
2319 cvsSelection:aSelection |
|
2320 "canvas changed its selection |
|
2321 " |
|
2322 |sel list rcLt| |
|
2323 |
|
2324 list := OrderedCollection new. |
|
2325 |
|
2326 aSelection isNil ifFalse:[ |
|
2327 aSelection isCollection ifTrue:[ |
|
2328 aSelection notNil ifTrue:[sel := aSelection] |
|
2329 ] ifFalse:[ |
|
2330 sel := Array with:aSelection |
|
2331 ] |
|
2332 ]. |
|
2333 |
|
2334 sel notNil ifTrue:[ |
|
2335 rcLt := false. |
|
2336 |
|
2337 sel do:[:aView||item| |
|
2338 (item := self itemOfView:aView) notNil ifTrue:[ |
|
2339 list add:item. |
|
2340 |
|
2341 [(item := item parent) notNil] whileTrue:[ |
|
2342 item hidden ifTrue:[ |
|
2343 rcLt := true. |
|
2344 item expand. |
|
2345 ] |
|
2346 ] |
|
2347 ] |
|
2348 ]. |
|
2349 rcLt ifTrue:[model recomputeList]. |
|
2350 sel := list collect:[:anItem| listOfNodes findFirst:[:el| el == anItem]] |
|
2351 ] ifFalse:[ |
|
2352 sel := list |
|
2353 ]. |
|
2354 self cvsEventsDisabledDo:[ self selection:sel ]. |
|
2355 |
|
2356 |
|
2357 |
|
2358 |
|
2359 ! |
|
2360 |
|
2361 cvsSelectionAdd:aView |
|
2362 "canvas adds a view to current selection |
|
2363 " |
|
2364 |parent item rcLt oldSel| |
|
2365 |
|
2366 item := self itemOfView:aView. |
|
2367 |
|
2368 item notNil ifTrue:[ |
|
2369 parent := item. |
|
2370 |
|
2371 [ (parent := parent parent) notNil ] whileTrue:[ |
|
2372 parent hidden ifTrue:[ |
|
2373 rcLt := true. |
|
2374 parent expand. |
|
2375 ] |
|
2376 ]. |
|
2377 rcLt == true ifTrue:[model recomputeList]. |
|
2378 |
|
2379 oldSel := selection copy. |
|
2380 self addToSelection:(listOfNodes findFirst:[:el| el == item]). |
|
2381 self selectionChangedFrom:oldSel |
|
2382 ]. |
|
2383 |
|
2384 |
|
2385 |
|
2386 ! |
|
2387 |
|
2388 cvsSelectionRemove:aView |
|
2389 "canvas removes a view from current selection |
|
2390 " |
|
2391 |parent item rcLt oldSel| |
|
2392 |
|
2393 item := self itemOfView:aView. |
|
2394 |
|
2395 item notNil ifTrue:[ |
|
2396 parent := item. |
|
2397 |
|
2398 [ (parent := parent parent) notNil ] whileTrue:[ |
|
2399 parent hidden ifTrue:[ |
|
2400 rcLt := true. |
|
2401 parent expand. |
|
2402 ] |
|
2403 ]. |
|
2404 rcLt == true ifTrue:[model recomputeList]. |
|
2405 |
|
2406 oldSel := selection copy. |
|
2407 self removeFromSelection:(listOfNodes findFirst:[:el| el == item]). |
|
2408 self selectionChangedFrom:oldSel |
|
2409 ]. |
|
2410 |
|
2411 |
|
2412 |
|
2413 ! ! |
|
2414 |
|
2415 !UIPainter::TreeView methodsFor:'change & update'! |
|
2416 |
|
2417 layoutChanged |
|
2418 "layout of any component changed; in case of single selection, the |
|
2419 application will be informed to update its layout |
|
2420 " |
|
2421 selection size == 1 ifTrue:[ |
|
2422 self application layoutChanged |
|
2423 ] |
|
2424 |
|
2425 |
|
2426 ! |
|
2427 |
|
2428 propertyChanged:aProperty |
|
2429 "property of view derived from argument a property changed |
|
2430 " |
|
2431 |item idx end| |
|
2432 |
|
2433 item := self itemOfView:(aProperty view). |
|
2434 |
|
2435 item notNil ifTrue:[ |
|
2436 item contents:aProperty. |
|
2437 |
|
2438 item name = aProperty name ifFalse:[ |
|
2439 idx := self firstLineShown. |
|
2440 |
|
2441 (end := self lastLineShown) > listOfNodes size ifTrue:[ |
|
2442 end := listOfNodes size |
|
2443 ]. |
|
2444 item name:aProperty name. |
|
2445 |
|
2446 [idx <= end] whileTrue:[ |
|
2447 (listOfNodes at:idx) == item ifTrue:[ |
|
2448 self redrawLine:idx. "/ is visible; redraw line |
|
2449 end := 0 |
|
2450 ] ifFalse:[ |
|
2451 idx := idx + 1 |
|
2452 ] |
|
2453 ] |
|
2454 ]. |
|
2455 |
|
2456 self selectedNode == item ifTrue:[ "/ inform application |
|
2457 self application treeViewChanged |
|
2458 ] |
|
2459 ]. |
|
2460 |
|
2461 |
|
2462 ! ! |
|
2463 |
|
2464 !UIPainter::TreeView methodsFor:'drag & drop'! |
|
2465 |
|
2466 canDrop:anObjectOrCollection |
|
2467 "can drop ? delegate to canvas |
|
2468 " |
|
2469 ^ self canvas canDrop:anObjectOrCollection |
|
2470 ! |
|
2471 |
|
2472 drop:anObjectOrCollection at:aPoint |
|
2473 "drop objects ? delegate to canvas |
|
2474 " |
|
2475 self canvas drop:anObjectOrCollection at:aPoint |
|
2476 ! ! |
|
2477 |
|
2478 !UIPainter::TreeView methodsFor:'event processing'! |
|
2479 |
|
2480 cvsEventsDisabledDo:aBlock |
|
2481 "evaluate the block without raising selection changed notifications |
|
2482 to canvas |
|
2483 " |
|
2484 |restoreCvsEvents| |
|
2485 |
|
2486 restoreCvsEvents := cvsEventsDisabled. |
|
2487 cvsEventsDisabled := true. |
|
2488 aBlock value. |
|
2489 cvsEventsDisabled := restoreCvsEvents. |
|
2490 |
|
2491 |
|
2492 ! |
|
2493 |
|
2494 cvsSetupListDo:aBlock |
|
2495 "evaluate block without handling notifications from model; after evaluation |
|
2496 the new list will be recomputed |
|
2497 " |
|
2498 model removeDependent:self. |
|
2499 |
|
2500 self cvsEventsDisabledDo:[ |
|
2501 self selection:nil. |
|
2502 aBlock value |
|
2503 ]. |
|
2504 model addDependent:self. |
|
2505 model recomputeList. |
|
2506 |
|
2507 ! |
|
2508 |
|
2509 doubleClicked |
|
2510 "disable collapse of canvas item |
|
2511 " |
|
2512 self selectedNode == model root ifFalse:[ |
|
2513 super doubleClicked |
|
2514 ] |
|
2515 |
|
2516 |
|
2517 ! ! |
|
2518 |
|
2519 !UIPainter::TreeView methodsFor:'initialization'! |
|
2520 |
|
2521 initialize |
|
2522 "initialization; set multiple select and model |
|
2523 " |
|
2524 super initialize. |
|
2525 self multipleSelectOk:true. |
|
2526 self model:(SelectionInTree new). |
|
2527 cvsEventsDisabled := false. |
|
2528 |
|
2529 |
|
2530 ! ! |
|
2531 |
|
2532 !UIPainter::TreeView methodsFor:'private'! |
|
2533 |
|
2534 allItemsDo:aOneArgBlock |
|
2535 "evaluate the argument a block on each item other than the canvas |
|
2536 " |
|
2537 model root allChildrenDo:aOneArgBlock |
|
2538 |
|
2539 |
|
2540 ! |
|
2541 |
|
2542 figureFor:aNode |
|
2543 "returns image for an item; testing whether item is the first |
|
2544 entry into the selection |
|
2545 " |
|
2546 |master| |
|
2547 |
|
2548 selection size == 0 ifFalse:[ |
|
2549 master := listOfNodes at:(selection first). |
|
2550 |
|
2551 aNode == master ifTrue:[ |
|
2552 lastDrawnMaster := master. |
|
2553 aNode children size == 0 ifTrue:[ |
|
2554 imageMasterChild isNil ifTrue:[ |
|
2555 imageMasterChild := (self class imageMasterChild) onDevice:device. |
|
2556 ]. |
|
2557 ^ imageMasterChild |
|
2558 ]. |
|
2559 imageMasterParent isNil ifTrue:[ |
|
2560 imageMasterParent := (self class imageMasterParent) onDevice:device. |
|
2561 ]. |
|
2562 ^ imageMasterParent |
|
2563 ] |
|
2564 ]. |
|
2565 ^ super figureFor:aNode |
|
2566 |
|
2567 |
|
2568 ! |
|
2569 |
|
2570 itemOfView:aView |
|
2571 "returns item assigned to view or nil |
|
2572 " |
|
2573 aView notNil ifTrue:[ |
|
2574 self allItemsDo:[:anItem| |
|
2575 (anItem contents view == aView) ifTrue:[^ anItem] |
|
2576 ] |
|
2577 ]. |
|
2578 ^ nil |
|
2579 |
|
2580 |
|
2581 ! |
|
2582 |
|
2583 selectNode:aNode |
|
2584 "change selection to a node |
|
2585 " |
|
2586 self selection:(listOfNodes findFirst:[:el| el == aNode]) |
|
2587 |
|
2588 |
|
2589 ! |
|
2590 |
|
2591 selectionChangedFrom:oldSelection |
|
2592 "selection has changed. update master selection and raise notification |
|
2593 to canvas in case of enabled cvs events |
|
2594 " |
|
2595 |sel| |
|
2596 |
|
2597 super selectionChangedFrom:oldSelection. |
|
2598 |
|
2599 cvsEventsDisabled ifFalse:[ |
|
2600 selection notNil ifTrue:[ |
|
2601 sel := selection collect:[:i| (listOfNodes at:i) contents view]. |
|
2602 ] ifFalse:[ |
|
2603 sel := #() |
|
2604 ]. |
|
2605 self canvas updateSelectionFromModel:sel. |
|
2606 ]. |
|
2607 |
|
2608 selection size ~~ 0 ifTrue:[ |
|
2609 sel := selection first. |
|
2610 |
|
2611 (listOfNodes at:sel) == lastDrawnMaster ifFalse:[ |
|
2612 self redrawLine:sel |
|
2613 ] |
|
2614 ] |
|
2615 |
|
2616 |
|
2617 ! ! |
|
2618 |
|
2619 !UIPainter::TreeView methodsFor:'queries'! |
|
2620 |
|
2621 canStepIn |
|
2622 "returns true if can step in |
|
2623 " |
|
2624 |item prnt| |
|
2625 |
|
2626 ( (item := self selectedNode) isNil |
|
2627 or:[(prnt := item parent) isNil |
|
2628 or:[(prnt := prnt childAt:((prnt indexOfChild:item) + 1)) isNil |
|
2629 or:[prnt contents spec class supportsSubComponents not]]] |
|
2630 ) ifTrue:[ |
|
2631 ^ false |
|
2632 ]. |
|
2633 ^ true |
|
2634 ! |
|
2635 |
|
2636 canStepOut |
|
2637 |item prnt| |
|
2638 |
|
2639 ( (item := self selectedNode) isNil |
|
2640 or:[(prnt := item parent) isNil |
|
2641 or:[prnt parent isNil]] |
|
2642 ) ifTrue:[ |
|
2643 ^ false |
|
2644 ]. |
|
2645 ^ true |
|
2646 ! |
|
2647 |
|
2648 hasValidSelection |
|
2649 "returns true if any selection exists other than root |
|
2650 " |
|
2651 |size| |
|
2652 |
|
2653 (size := selection size) > 1 ifFalse:[ |
|
2654 (size == 0 or:[self isInSelection:1]) ifTrue:[ |
|
2655 ^ false |
|
2656 ] |
|
2657 ]. |
|
2658 ^ true |
|
2659 ! ! |
|
2660 |
|
2661 !UIPainter::TreeView methodsFor:'user interactions'! |
|
2662 |
|
2663 doStepIn |
|
2664 |item prnt canvas| |
|
2665 |
|
2666 ( (item := self selectedNode) isNil |
|
2667 or:[(prnt := item parent) isNil |
|
2668 or:[(prnt := prnt childAt:((prnt indexOfChild:item) + 1)) isNil |
|
2669 or:[prnt contents spec class supportsSubComponents not]]] |
|
2670 ) ifFalse:[ |
|
2671 canvas := self canvas. |
|
2672 canvas deleteSelection. |
|
2673 canvas setSelection:(prnt contents view) withRedraw:false. |
|
2674 canvas pasteWithLayout. |
|
2675 ] |
|
2676 ! |
|
2677 |
|
2678 doStepOut |
|
2679 |item next prnt prop spVw index canvas to| |
|
2680 |
|
2681 ( (item := self selectedNode) isNil |
|
2682 or:[(prnt := item parent) isNil |
|
2683 or:[(next := prnt parent) isNil]] |
|
2684 ) ifTrue:[ |
|
2685 ^ self |
|
2686 ]. |
|
2687 model removeDependent:self. |
|
2688 |
|
2689 canvas := self canvas. |
|
2690 canvas deleteSelection. |
|
2691 canvas setSelection:(next contents view) withRedraw:false. |
|
2692 canvas pasteWithLayout. |
|
2693 |
|
2694 ! |
|
2695 |
|
2696 doStepOver:anIndex |
|
2697 "move child 'anOffset' forward or backward in list of children |
|
2698 " |
|
2699 |item idx size prnt spVw view| |
|
2700 |
|
2701 ( (item := self selectedNode) isNil |
|
2702 or:[(prnt := item parent) isNil |
|
2703 or:[(size := prnt children size) < 2]] |
|
2704 ) ifFalse:[ |
|
2705 idx := prnt indexOfChild:item. |
|
2706 |
|
2707 model removeDependent:self. |
|
2708 model removeSelection. |
|
2709 selection := nil. |
|
2710 model addDependent:self. |
|
2711 idx := idx + anIndex. |
|
2712 |
|
2713 idx < 1 ifTrue:[idx := size] |
|
2714 ifFalse:[idx > size ifTrue:[idx := 1]]. |
|
2715 |
|
2716 model add:item beforeIndex:idx below:prnt. |
|
2717 idx := prnt indexOfChild:item. |
|
2718 view := item contents view. |
|
2719 spVw := view superView. |
|
2720 |
|
2721 "/ input view might by contained in sequence |
|
2722 ((size := self canvas findInputViewIn:spVw) ~~ 0 and:[idx >= size]) ifTrue:[ |
|
2723 idx := idx + 1 |
|
2724 ]. |
|
2725 spVw changeSequenceOrderFor:view to:idx. |
|
2726 |
|
2727 spVw specClass isLayoutContainer ifFalse:[ |
|
2728 spVw subViews do:[:v| v raise ]. |
|
2729 self canvas inputView raise |
|
2730 ]. |
|
2731 self selectNode:item. |
|
2732 ] |
|
2733 ! ! |
|
2734 |
1763 !UIPainter class methodsFor:'documentation'! |
2735 !UIPainter class methodsFor:'documentation'! |
1764 |
2736 |
1765 version |
2737 version |
1766 ^ '$Header$' |
2738 ^ '$Header$' |
1767 ! ! |
2739 ! ! |