MenuEditor.st
changeset 406 a519e0d547f6
parent 398 155310ec83aa
child 407 578a7aaed19e
equal deleted inserted replaced
405:8546da96ab11 406:a519e0d547f6
    71 
    71 
    72     [author:]
    72     [author:]
    73         Claus Atzkern, Thomas Zwick
    73         Claus Atzkern, Thomas Zwick
    74 "
    74 "
    75 
    75 
       
    76 ! !
       
    77 
       
    78 !MenuEditor class methodsFor:'initialization'!
       
    79 
       
    80 initialize
       
    81 
       
    82     Painter initialize
    76 ! !
    83 ! !
    77 
    84 
    78 !MenuEditor class methodsFor:'code generation'!
    85 !MenuEditor class methodsFor:'code generation'!
    79 
    86 
    80 generateCodeFor:aClass menuSelector:aSelector
    87 generateCodeFor:aClass menuSelector:aSelector
   219 
   226 
   220     "Modified: / 29.10.1997 / 03:22:06 / cg"
   227     "Modified: / 29.10.1997 / 03:22:06 / cg"
   221 ! !
   228 ! !
   222 
   229 
   223 !MenuEditor class methodsFor:'interface specs'!
   230 !MenuEditor class methodsFor:'interface specs'!
   224 
       
   225 classAndMethodSpec
       
   226     "this window spec was automatically generated by the ST/X UIPainter"
       
   227 
       
   228     "do not manually edit this - the painter/builder may not be able to
       
   229      handle the specification if its corrupted."
       
   230 
       
   231     "
       
   232      UIPainter new openOnClass:MenuEditor andSelector:#classAndMethodSpec
       
   233      MenuEditor new openInterface:#classAndMethodSpec
       
   234     "
       
   235 
       
   236     <resource: #canvas>
       
   237 
       
   238     ^
       
   239      
       
   240        #(#FullSpec
       
   241           #'window:' 
       
   242            #(#WindowSpec
       
   243               #'name:' 'MenuEditor'
       
   244               #'layout:' #(#LayoutFrame 197 0 172 0 552 0 258 0)
       
   245               #'label:' 'MenuEditor'
       
   246               #'min:' #(#Point 10 10)
       
   247               #'max:' #(#Point 1152 900)
       
   248               #'bounds:' #(#Rectangle 197 172 553 259)
       
   249               #'usePreferredExtent:' false
       
   250           )
       
   251           #'component:' 
       
   252            #(#SpecCollection
       
   253               #'collection:' 
       
   254                #(
       
   255                  #(#LabelSpec
       
   256                     #'name:' 'classLabel'
       
   257                     #'layout:' #(#LayoutFrame 0 0.0 4 0 150 0 21 0)
       
   258                     #'label:' 'Class for menu code:'
       
   259                     #'adjust:' #right
       
   260                     #'resizeForLabel:' true
       
   261                 )
       
   262                  #(#LabelSpec
       
   263                     #'name:' 'selectorLabel'
       
   264                     #'layout:' #(#LayoutFrame 0 0.0 29 0 150 0 46 0)
       
   265                     #'label:' 'Selector for menu code:'
       
   266                     #'adjust:' #right
       
   267                     #'resizeForLabel:' true
       
   268                 )
       
   269                  #(#InputFieldSpec
       
   270                     #'name:' 'methodNameField'
       
   271                     #'layout:' #(#LayoutFrame 155 0 27 0 0 1.0 49 0)
       
   272                     #'tabable:' true
       
   273                     #'model:' #methodNameChannel
       
   274                 )
       
   275                  #(#InputFieldSpec
       
   276                     #'name:' 'classNameField'
       
   277                     #'layout:' #(#LayoutFrame 155 0 2 0 0 1.0 24 0)
       
   278                     #'tabable:' true
       
   279                     #'model:' #classNameChannel
       
   280                 )
       
   281                  #(#HorizontalPanelViewSpec
       
   282                     #'name:' 'commitPanel'
       
   283                     #'layout:' #(#LayoutFrame 10 0.0 -29 1.0 -10 1.0 -5 1.0)
       
   284                     #'component:' 
       
   285                      #(#SpecCollection
       
   286                         #'collection:' 
       
   287                          #(
       
   288                            #(#ActionButtonSpec
       
   289                               #'name:' 'button1'
       
   290                               #'label:' 'cancel'
       
   291                               #'tabable:' true
       
   292                               #'model:' #cancel
       
   293                               #'extent:' #(#Point 163 24)
       
   294                           )
       
   295                            #(#ActionButtonSpec
       
   296                               #'name:' 'button2'
       
   297                               #'label:' 'ok'
       
   298                               #'tabable:' true
       
   299                               #'model:' #accept
       
   300                               #'isDefault:' true
       
   301                               #'extent:' #(#Point 164 24)
       
   302                           )
       
   303                         )
       
   304                     )
       
   305                     #'horizontalLayout:' #fitSpace
       
   306                     #'verticalLayout:' #fit
       
   307                     #'horizontalSpace:' 3
       
   308                     #'verticalSpace:' 3
       
   309                 )
       
   310               )
       
   311           )
       
   312       )
       
   313 !
       
   314 
   231 
   315 classDefineSpec
   232 classDefineSpec
   316     "this window spec was automatically generated by the ST/X UIPainter"
   233     "this window spec was automatically generated by the ST/X UIPainter"
   317 
   234 
   318     "do not manually edit this - the painter/builder may not be able to
   235     "do not manually edit this - the painter/builder may not be able to
   425                        #(#MenuItem
   342                        #(#MenuItem
   426                           #'label:' 'New'
   343                           #'label:' 'New'
   427                           #'value:' #doNew
   344                           #'value:' #doNew
   428                       )
   345                       )
   429                        #(#MenuItem
   346                        #(#MenuItem
       
   347                           #'label:' '-'
       
   348                       )
       
   349                        #(#MenuItem
   430                           #'label:' 'Load From Class...'
   350                           #'label:' 'Load From Class...'
   431                           #'translateLabel:' true
   351                           #'translateLabel:' true
   432                           #'value:' #doFromClass
   352                           #'value:' #doFromClass
   433                           #'enabled:' #isStandAlone
   353                           #'enabled:' #isStandAlone
   434                       )
   354                       )
   435                        #(#MenuItem
   355                        #(#MenuItem
   436                           #'label:' '-'
   356                           #'label:' 'Load From Class With Superclass...'
   437                       )
   357                           #'translateLabel:' true
   438                        #(#MenuItem
   358                           #'value:' #loadFromClassWithSuperclass
   439                           #'label:' 'Pick A Menu'
       
   440                           #'value:' #doPickAMenu
       
   441                           #'enabled:' #isStandAlone
       
   442                       )
   359                       )
   443                        #(#MenuItem
   360                        #(#MenuItem
   444                           #'label:' '-'
   361                           #'label:' '-'
   445                       )
   362                       )
   446                        #(#MenuItem
   363                        #(#MenuItem
   454                       )
   371                       )
   455                        #(#MenuItem
   372                        #(#MenuItem
   456                           #'label:' '-'
   373                           #'label:' '-'
   457                       )
   374                       )
   458                        #(#MenuItem
   375                        #(#MenuItem
       
   376                           #'label:' 'Pick A Menu'
       
   377                           #'value:' #doPickAMenu
       
   378                           #'enabled:' #isStandAlone
       
   379                       )
       
   380                        #(#MenuItem
   459                           #'label:' 'Define Class...'
   381                           #'label:' 'Define Class...'
   460                           #'value:' #doDefineClass
   382                           #'value:' #doDefineClass
   461                           #'enabled:' #isStandAlone
   383                           #'enabled:' #isStandAlone
   462                       )
   384                       )
   463                        #(#MenuItem
   385                        #(#MenuItem
   464                           #'label:' 'Browse Application Class'
   386                           #'label:' 'Browse Class'
   465                           #'value:' #doBrowseAppClass
   387                           #'value:' #doBrowseAppClass
   466                       )
   388                       )
   467                        #(#MenuItem
   389                        #(#MenuItem
   468                           #'label:' '-'
   390                           #'label:' '-'
   469                       )
   391                       )
   717      
   639      
   718        #(#FullSpec
   640        #(#FullSpec
   719           #'window:' 
   641           #'window:' 
   720            #(#WindowSpec
   642            #(#WindowSpec
   721               #'name:' 'Menu Builder'
   643               #'name:' 'Menu Builder'
   722               #'layout:' #(#LayoutFrame 102 0 166 0 681 0 549 0)
   644               #'layout:' #(#LayoutFrame 227 0 195 0 806 0 578 0)
   723               #'label:' 'Menu Builder'
   645               #'label:' 'Menu Builder'
   724               #'min:' #(#Point 10 10)
   646               #'min:' #(#Point 10 10)
   725               #'max:' #(#Point 1152 900)
   647               #'max:' #(#Point 1152 900)
   726               #'bounds:' #(#Rectangle 102 166 682 550)
   648               #'bounds:' #(#Rectangle 227 195 807 579)
   727               #'menu:' #menu
   649               #'menu:' #menu
   728               #'usePreferredExtent:' false
   650               #'usePreferredExtent:' false
   729           )
   651           )
   730           #'component:' 
   652           #'component:' 
   731            #(#SpecCollection
   653            #(#SpecCollection
   803                     )
   725                     )
   804                     #'handles:' #(#Any 0.384483 1.0)
   726                     #'handles:' #(#Any 0.384483 1.0)
   805                 )
   727                 )
   806                  #(#LabelSpec
   728                  #(#LabelSpec
   807                     #'name:' 'infoLabel'
   729                     #'name:' 'infoLabel'
   808                     #'layout:' #(#LayoutFrame 0 0.0 -22 1 -65 1.0 0 1.0)
   730                     #'layout:' #(#LayoutFrame 0 0.0 -22 1 -80 1.0 0 1.0)
   809                     #'labelChannel:' #valueOfInfoLabel
   731                     #'labelChannel:' #valueOfInfoLabel
   810                     #'level:' 1
   732                     #'level:' 1
   811                     #'adjust:' #left
   733                     #'adjust:' #left
   812                 )
   734                 )
   813                  #(#LabelSpec
   735                  #(#LabelSpec
   814                     #'name:' 'timeLabel'
   736                     #'name:' 'timeLabel'
   815                     #'layout:' #(#LayoutFrame -65 1 -22 1 0 1.0 0 1.0)
   737                     #'layout:' #(#LayoutFrame -80 1 -22 1 0 1.0 0 1.0)
   816                     #'labelChannel:' #valueOfTimeLabel
   738                     #'labelChannel:' #valueOfTimeLabel
   817                     #'level:' 1
   739                     #'level:' 1
   818                     #'adjust:' #right
   740                     #'adjust:' #right
   819                 )
   741                 )
   820               )
   742               )
   884      
   806      
   885        #(#FullSpec
   807        #(#FullSpec
   886           #'window:' 
   808           #'window:' 
   887            #(#WindowSpec
   809            #(#WindowSpec
   888               #'name:' 'unnamed canvas'
   810               #'name:' 'unnamed canvas'
   889               #'layout:' #(#LayoutFrame 197 0 172 0 463 0 490 0)
   811               #'layout:' #(#LayoutFrame 454 0 288 0 720 0 606 0)
   890               #'label:' 'unnamed canvas'
   812               #'label:' 'unnamed canvas'
   891               #'min:' #(#Point 10 10)
   813               #'min:' #(#Point 10 10)
   892               #'max:' #(#Point 1160 870)
   814               #'max:' #(#Point 1160 870)
   893               #'bounds:' #(#Rectangle 197 172 464 491)
   815               #'bounds:' #(#Rectangle 454 288 721 607)
   894               #'usePreferredExtent:' false
   816               #'usePreferredExtent:' false
   895           )
   817           )
   896           #'component:' 
   818           #'component:' 
   897            #(#SpecCollection
   819            #(#SpecCollection
   898               #'collection:' 
   820               #'collection:' 
   899                #(
   821                #(
   900                  #(#LabelSpec
   822                  #(#LabelSpec
   901                     #'name:' 'nameKeyLabel'
   823                     #'name:' 'nameKeyLabel'
   902                     #'layout:' #(#AlignmentOrigin 87 0 26 0 1 0.5)
   824                     #'layout:' #(#AlignmentOrigin 107 0 26 0 1 0.5)
   903                     #'label:' 'NameKey:'
   825                     #'label:' 'NameKey:'
   904                     #'adjust:' #right
   826                     #'adjust:' #right
   905                     #'resizeForLabel:' true
   827                     #'resizeForLabel:' true
   906                 )
   828                 )
   907                  #(#InputFieldSpec
   829                  #(#InputFieldSpec
   908                     #'name:' 'nameKeyField'
   830                     #'name:' 'nameKeyField'
   909                     #'layout:' #(#LayoutFrame 90 0 15 0 0 1.0 37 0)
   831                     #'layout:' #(#LayoutFrame 110 0 15 0 0 1.0 37 0)
   910                     #'activeHelpKey:' #nameKey
   832                     #'activeHelpKey:' #nameKey
   911                     #'tabable:' true
   833                     #'tabable:' true
   912                     #'model:' #nameKey
   834                     #'model:' #nameKey
   913                     #'type:' #symbolOrNil
   835                     #'type:' #symbolOrNil
   914                 )
   836                 )
   915                  #(#LabelSpec
   837                  #(#LabelSpec
   916                     #'name:' 'labelLabel'
   838                     #'name:' 'labelLabel'
   917                     #'layout:' #(#AlignmentOrigin 87 0 51 0 1 0.5)
   839                     #'layout:' #(#AlignmentOrigin 107 0 51 0 1 0.5)
   918                     #'label:' 'Label:'
   840                     #'label:' 'Label:'
   919                     #'adjust:' #right
   841                     #'adjust:' #right
   920                     #'resizeForLabel:' true
   842                     #'resizeForLabel:' true
   921                 )
   843                 )
   922                  #(#InputFieldSpec
   844                  #(#InputFieldSpec
   923                     #'name:' 'labelField'
   845                     #'name:' 'labelField'
   924                     #'layout:' #(#LayoutFrame 90 0 40 0 0 1.0 62 0)
   846                     #'layout:' #(#LayoutFrame 110 0 40 0 0 1.0 62 0)
   925                     #'activeHelpKey:' #label
   847                     #'activeHelpKey:' #label
   926                     #'tabable:' true
   848                     #'tabable:' true
   927                     #'model:' #label
   849                     #'model:' #label
   928                 )
   850                 )
   929                  #(#LabelSpec
   851                  #(#LabelSpec
   930                     #'name:' 'valueLabel'
   852                     #'name:' 'valueLabel'
   931                     #'layout:' #(#AlignmentOrigin 87 0 90 0 1 0.5)
   853                     #'layout:' #(#AlignmentOrigin 107 0 90 0 1 0.5)
   932                     #'label:' 'Value:'
   854                     #'label:' 'Value:'
   933                     #'adjust:' #right
   855                     #'adjust:' #right
   934                     #'resizeForLabel:' true
   856                     #'resizeForLabel:' true
   935                 )
   857                 )
   936                  #(#InputFieldSpec
   858                  #(#InputFieldSpec
   937                     #'name:' 'valueField'
   859                     #'name:' 'valueField'
   938                     #'layout:' #(#LayoutFrame 90 0 79 0 0 1.0 101 0)
   860                     #'layout:' #(#LayoutFrame 110 0 79 0 0 1.0 101 0)
   939                     #'activeHelpKey:' #value
   861                     #'activeHelpKey:' #value
   940                     #'tabable:' true
   862                     #'tabable:' true
   941                     #'model:' #value
   863                     #'model:' #value
   942                     #'type:' #symbolOrNil
   864                     #'type:' #symbolOrNil
   943                 )
   865                 )
   944                  #(#LabelSpec
   866                  #(#LabelSpec
   945                     #'name:' 'argumentLabel'
   867                     #'name:' 'argumentLabel'
   946                     #'layout:' #(#AlignmentOrigin 87 0 115 0 1 0.5)
   868                     #'layout:' #(#AlignmentOrigin 107 0 115 0 1 0.5)
   947                     #'label:' 'Argument:'
   869                     #'label:' 'Argument:'
   948                     #'adjust:' #right
   870                     #'adjust:' #right
   949                     #'resizeForLabel:' true
   871                     #'resizeForLabel:' true
   950                 )
   872                 )
   951                  #(#InputFieldSpec
   873                  #(#InputFieldSpec
   952                     #'name:' 'argumentField'
   874                     #'name:' 'argumentField'
   953                     #'layout:' #(#LayoutFrame 90 0 104 0 0 1.0 126 0)
   875                     #'layout:' #(#LayoutFrame 110 0 104 0 0 1.0 126 0)
   954                     #'activeHelpKey:' #argument
   876                     #'activeHelpKey:' #argument
   955                     #'tabable:' true
   877                     #'tabable:' true
   956                     #'model:' #argument
   878                     #'model:' #argument
   957                     #'type:' #string
   879                     #'type:' #string
   958                 )
   880                 )
   959                  #(#LabelSpec
   881                  #(#LabelSpec
   960                     #'name:' 'indicationLabel'
   882                     #'name:' 'indicationLabel'
   961                     #'layout:' #(#AlignmentOrigin 87 0 155 0 1 0.5)
   883                     #'layout:' #(#AlignmentOrigin 107 0 155 0 1 0.5)
   962                     #'label:' 'Indication:'
   884                     #'label:' 'Indication:'
   963                     #'adjust:' #right
   885                     #'adjust:' #right
   964                     #'resizeForLabel:' true
   886                     #'resizeForLabel:' true
   965                 )
   887                 )
   966                  #(#InputFieldSpec
   888                  #(#InputFieldSpec
   967                     #'name:' 'indicationField'
   889                     #'name:' 'indicationField'
   968                     #'layout:' #(#LayoutFrame 90 0 144 0 0 1.0 166 0)
   890                     #'layout:' #(#LayoutFrame 110 0 144 0 0 1.0 166 0)
   969                     #'activeHelpKey:' #indication
   891                     #'activeHelpKey:' #indication
   970                     #'tabable:' true
   892                     #'tabable:' true
   971                     #'model:' #indication
   893                     #'model:' #indication
   972                     #'type:' #symbolOrNil
   894                     #'type:' #symbolOrNil
   973                 )
   895                 )
  1007      
   929      
  1008        #(#FullSpec
   930        #(#FullSpec
  1009           #'window:' 
   931           #'window:' 
  1010            #(#WindowSpec
   932            #(#WindowSpec
  1011               #'name:' 'unnamed canvas'
   933               #'name:' 'unnamed canvas'
  1012               #'layout:' #(#LayoutFrame 197 0 172 0 463 0 490 0)
   934               #'layout:' #(#LayoutFrame 585 0 331 0 851 0 649 0)
  1013               #'label:' 'unnamed canvas'
   935               #'label:' 'unnamed canvas'
  1014               #'min:' #(#Point 10 10)
   936               #'min:' #(#Point 10 10)
  1015               #'max:' #(#Point 1280 1024)
   937               #'max:' #(#Point 1280 1024)
  1016               #'bounds:' #(#Rectangle 197 172 464 491)
   938               #'bounds:' #(#Rectangle 585 331 852 650)
  1017               #'usePreferredExtent:' false
   939               #'usePreferredExtent:' false
  1018           )
   940           )
  1019           #'component:' 
   941           #'component:' 
  1020            #(#SpecCollection
   942            #(#SpecCollection
  1021               #'collection:' 
   943               #'collection:' 
  1022                #(
   944                #(
  1023                  #(#LabelSpec
   945                  #(#LabelSpec
  1024                     #'name:' 'nameKeyLabel'
   946                     #'name:' 'nameKeyLabel'
  1025                     #'layout:' #(#AlignmentOrigin 87 0 26 0 1 0.5)
   947                     #'layout:' #(#AlignmentOrigin 107 0 26 0 1 0.5)
  1026                     #'activeHelpKey:' #nameKey
   948                     #'activeHelpKey:' #nameKey
  1027                     #'label:' 'NameKey:'
   949                     #'label:' 'NameKey:'
  1028                     #'adjust:' #right
   950                     #'adjust:' #right
  1029                     #'resizeForLabel:' true
   951                     #'resizeForLabel:' true
  1030                 )
   952                 )
  1031                  #(#InputFieldSpec
   953                  #(#InputFieldSpec
  1032                     #'name:' 'nameKeyField'
   954                     #'name:' 'nameKeyField'
  1033                     #'layout:' #(#LayoutFrame 90 0 15 0 0 1.0 37 0)
   955                     #'layout:' #(#LayoutFrame 110 0 15 0 0 1.0 37 0)
  1034                     #'activeHelpKey:' #nameKey
   956                     #'activeHelpKey:' #nameKey
  1035                     #'tabable:' true
   957                     #'tabable:' true
  1036                     #'model:' #nameKey
   958                     #'model:' #nameKey
  1037                     #'type:' #symbolOrNil
   959                     #'type:' #symbolOrNil
  1038                 )
   960                 )
  1039                  #(#LabelSpec
   961                  #(#LabelSpec
  1040                     #'name:' 'labelLabel'
   962                     #'name:' 'labelLabel'
  1041                     #'layout:' #(#AlignmentOrigin 87 0 51 0 1 0.5)
   963                     #'layout:' #(#AlignmentOrigin 107 0 51 0 1 0.5)
  1042                     #'label:' 'Label:'
   964                     #'label:' 'Label:'
  1043                     #'resizeForLabel:' true
   965                     #'resizeForLabel:' true
  1044                 )
   966                 )
  1045                  #(#InputFieldSpec
   967                  #(#InputFieldSpec
  1046                     #'name:' 'labelField'
   968                     #'name:' 'labelField'
  1047                     #'layout:' #(#LayoutFrame 90 0 40 0 0 1.0 62 0)
   969                     #'layout:' #(#LayoutFrame 110 0 40 0 0 1.0 62 0)
  1048                     #'activeHelpKey:' #label
   970                     #'activeHelpKey:' #label
  1049                     #'tabable:' true
   971                     #'tabable:' true
  1050                     #'model:' #label
   972                     #'model:' #label
  1051                 )
   973                 )
  1052                  #(#InputFieldSpec
   974                  #(#InputFieldSpec
  1053                     #'name:' 'menuField'
   975                     #'name:' 'menuField'
  1054                     #'layout:' #(#LayoutFrame 90 0 65 0 0 1.0 87 0)
   976                     #'layout:' #(#LayoutFrame 110 0 65 0 0 1.0 87 0)
  1055                     #'activeHelpKey:' #submenuChannel
   977                     #'activeHelpKey:' #submenuChannel
  1056                     #'tabable:' true
   978                     #'tabable:' true
  1057                     #'model:' #submenuChannel
   979                     #'model:' #submenuChannel
  1058                     #'type:' #symbolOrNil
   980                     #'type:' #symbolOrNil
  1059                 )
   981                 )
  1060                  #(#LabelSpec
   982                  #(#LabelSpec
  1061                     #'name:' 'menuLabel'
   983                     #'name:' 'menuLabel'
  1062                     #'layout:' #(#AlignmentOrigin 87 0 76 0 1 0.5)
   984                     #'layout:' #(#AlignmentOrigin 107 0 76 0 1 0.5)
  1063                     #'label:' 'Menu:'
   985                     #'label:' 'Menu:'
  1064                     #'resizeForLabel:' true
   986                     #'resizeForLabel:' true
  1065                 )
   987                 )
  1066               )
   988               )
  1067           )
   989           )
  1085      
  1007      
  1086        #(#FullSpec
  1008        #(#FullSpec
  1087           #'window:' 
  1009           #'window:' 
  1088            #(#WindowSpec
  1010            #(#WindowSpec
  1089               #'name:' 'unnamed canvas'
  1011               #'name:' 'unnamed canvas'
  1090               #'layout:' #(#LayoutFrame 197 0 172 0 463 0 490 0)
  1012               #'layout:' #(#LayoutFrame 381 0 278 0 647 0 596 0)
  1091               #'label:' 'unnamed canvas'
  1013               #'label:' 'unnamed canvas'
  1092               #'min:' #(#Point 10 10)
  1014               #'min:' #(#Point 10 10)
  1093               #'max:' #(#Point 1280 1024)
  1015               #'max:' #(#Point 1280 1024)
  1094               #'bounds:' #(#Rectangle 197 172 464 491)
  1016               #'bounds:' #(#Rectangle 381 278 648 597)
  1095               #'usePreferredExtent:' false
  1017               #'usePreferredExtent:' false
  1096           )
  1018           )
  1097           #'component:' 
  1019           #'component:' 
  1098            #(#SpecCollection
  1020            #(#SpecCollection
  1099               #'collection:' 
  1021               #'collection:' 
  1100                #(
  1022                #(
  1101                  #(#LabelSpec
  1023                  #(#LabelSpec
  1102                     #'name:' 'nameKeyLabel'
  1024                     #'name:' 'nameKeyLabel'
  1103                     #'layout:' #(#AlignmentOrigin 87 0 26 0 1 0.5)
  1025                     #'layout:' #(#AlignmentOrigin 107 0 26 0 1 0.5)
  1104                     #'label:' 'NameKey:'
  1026                     #'label:' 'NameKey:'
  1105                     #'adjust:' #right
  1027                     #'adjust:' #right
  1106                     #'resizeForLabel:' true
  1028                     #'resizeForLabel:' true
  1107                 )
  1029                 )
  1108                  #(#InputFieldSpec
  1030                  #(#InputFieldSpec
  1109                     #'name:' 'nameKeyField'
  1031                     #'name:' 'nameKeyField'
  1110                     #'layout:' #(#LayoutFrame 90 0 15 0 0 1.0 37 0)
  1032                     #'layout:' #(#LayoutFrame 110 0 15 0 0 1.0 37 0)
  1111                     #'activeHelpKey:' #nameKey
  1033                     #'activeHelpKey:' #nameKey
  1112                     #'tabable:' true
  1034                     #'tabable:' true
  1113                     #'model:' #nameKey
  1035                     #'model:' #nameKey
  1114                     #'type:' #symbolOrNil
  1036                     #'type:' #symbolOrNil
  1115                 )
  1037                 )
  1116                  #(#LabelSpec
  1038                  #(#LabelSpec
  1117                     #'name:' 'labelLabel'
  1039                     #'name:' 'labelLabel'
  1118                     #'layout:' #(#AlignmentOrigin 87 0 51 0 1 0.5)
  1040                     #'layout:' #(#AlignmentOrigin 107 0 51 0 1 0.5)
  1119                     #'label:' 'Label:'
  1041                     #'label:' 'Label:'
  1120                     #'adjust:' #right
  1042                     #'adjust:' #right
  1121                     #'resizeForLabel:' true
  1043                     #'resizeForLabel:' true
  1122                 )
  1044                 )
  1123                  #(#InputFieldSpec
  1045                  #(#InputFieldSpec
  1124                     #'name:' 'labelField'
  1046                     #'name:' 'labelField'
  1125                     #'layout:' #(#LayoutFrame 90 0 40 0 0 1.0 62 0)
  1047                     #'layout:' #(#LayoutFrame 110 0 40 0 0 1.0 62 0)
  1126                     #'activeHelpKey:' #label
  1048                     #'activeHelpKey:' #label
  1127                     #'tabable:' true
  1049                     #'tabable:' true
  1128                     #'model:' #label
  1050                     #'model:' #label
  1129                 )
  1051                 )
  1130                  #(#CheckBoxSpec
  1052                  #(#CheckBoxSpec
  1156      
  1078      
  1157        #(#FullSpec
  1079        #(#FullSpec
  1158           #'window:' 
  1080           #'window:' 
  1159            #(#WindowSpec
  1081            #(#WindowSpec
  1160               #'name:' 'unnamed canvas'
  1082               #'name:' 'unnamed canvas'
  1161               #'layout:' #(#LayoutFrame 197 0 172 0 463 0 490 0)
  1083               #'layout:' #(#LayoutFrame 427 0 345 0 693 0 663 0)
  1162               #'label:' 'unnamed canvas'
  1084               #'label:' 'unnamed canvas'
  1163               #'min:' #(#Point 10 10)
  1085               #'min:' #(#Point 10 10)
  1164               #'max:' #(#Point 1280 1024)
  1086               #'max:' #(#Point 1280 1024)
  1165               #'bounds:' #(#Rectangle 197 172 464 491)
  1087               #'bounds:' #(#Rectangle 427 345 694 664)
  1166               #'usePreferredExtent:' false
  1088               #'usePreferredExtent:' false
  1167           )
  1089           )
  1168           #'component:' 
  1090           #'component:' 
  1169            #(#SpecCollection
  1091            #(#SpecCollection
  1170               #'collection:' 
  1092               #'collection:' 
  1171                #(
  1093                #(
  1172                  #(#LabelSpec
  1094                  #(#LabelSpec
  1173                     #'name:' 'selectorLabel'
  1095                     #'name:' 'selectorLabel'
  1174                     #'layout:' #(#AlignmentOrigin 87 0 26 0 1 0.5)
  1096                     #'layout:' #(#AlignmentOrigin 107 0 26 0 1 0.5)
  1175                     #'label:' 'Selector:'
  1097                     #'label:' 'Selector:'
  1176                     #'adjust:' #right
  1098                     #'adjust:' #right
  1177                     #'resizeForLabel:' true
  1099                     #'resizeForLabel:' true
  1178                 )
  1100                 )
  1179                  #(#InputFieldSpec
  1101                  #(#InputFieldSpec
  1180                     #'name:' 'selectorField'
  1102                     #'name:' 'selectorField'
  1181                     #'layout:' #(#LayoutFrame 90 0 15 0 0 1.0 37 0)
  1103                     #'layout:' #(#LayoutFrame 110 0 15 0 0 1.0 37 0)
  1182                     #'activeHelpKey:' #menuSelector
  1104                     #'activeHelpKey:' #menuSelector
  1183                     #'tabable:' true
  1105                     #'tabable:' true
  1184                     #'model:' #label
  1106                     #'model:' #label
  1185                 )
  1107                 )
  1186               )
  1108               )
  1254      
  1176      
  1255        #(#FullSpec
  1177        #(#FullSpec
  1256           #'window:' 
  1178           #'window:' 
  1257            #(#WindowSpec
  1179            #(#WindowSpec
  1258               #'name:' 'unnamed canvas'
  1180               #'name:' 'unnamed canvas'
  1259               #'layout:' #(#LayoutFrame 367 0 108 0 625 0 395 0)
  1181               #'layout:' #(#LayoutFrame 196 0 489 0 454 0 776 0)
  1260               #'label:' 'unnamed canvas'
  1182               #'label:' 'unnamed canvas'
  1261               #'min:' #(#Point 10 10)
  1183               #'min:' #(#Point 10 10)
  1262               #'max:' #(#Point 1280 1024)
  1184               #'max:' #(#Point 1280 1024)
  1263               #'bounds:' #(#Rectangle 367 108 626 396)
  1185               #'bounds:' #(#Rectangle 196 489 455 777)
  1264               #'usePreferredExtent:' false
  1186               #'usePreferredExtent:' false
  1265           )
  1187           )
  1266           #'component:' 
  1188           #'component:' 
  1267            #(#SpecCollection
  1189            #(#SpecCollection
  1268               #'collection:' 
  1190               #'collection:' 
  1269                #(
  1191                #(
  1270                  #(#LabelSpec
  1192                  #(#LabelSpec
  1271                     #'name:' 'shortcutKeyLabel'
  1193                     #'name:' 'shortcutKeyLabel'
  1272                     #'layout:' #(#AlignmentOrigin 87 0 26 0 1 0.5)
  1194                     #'layout:' #(#AlignmentOrigin 107 0 26 0 1 0.5)
  1273                     #'label:' 'Accelerator:'
  1195                     #'label:' 'Accelerator:'
  1274                     #'adjust:' #right
  1196                     #'adjust:' #right
  1275                     #'resizeForLabel:' true
  1197                     #'resizeForLabel:' true
  1276                 )
  1198                 )
  1277                  #(#InputFieldSpec
  1199                  #(#InputFieldSpec
  1278                     #'name:' 'shortcutKeyField'
  1200                     #'name:' 'shortcutKeyField'
  1279                     #'layout:' #(#LayoutFrame 90 0 15 0 0 1.0 37 0)
  1201                     #'layout:' #(#LayoutFrame 110 0 15 0 0 1.0 37 0)
  1280                     #'activeHelpKey:' #shortcutKey
  1202                     #'activeHelpKey:' #shortcutKey
  1281                     #'tabable:' true
  1203                     #'tabable:' true
  1282                     #'model:' #shortcutKey
  1204                     #'model:' #shortcutKey
  1283                     #'type:' #symbolOrNil
  1205                     #'type:' #symbolOrNil
  1284                 )
  1206                 )
  1285                  #(#LabelSpec
  1207                  #(#LabelSpec
  1286                     #'name:' 'enabledLabel'
  1208                     #'name:' 'enabledLabel'
  1287                     #'layout:' #(#AlignmentOrigin 87 0 51 0 1 0.5)
  1209                     #'layout:' #(#AlignmentOrigin 107 0 51 0 1 0.5)
  1288                     #'label:' 'Enabled:'
  1210                     #'label:' 'Enabled:'
  1289                     #'adjust:' #right
  1211                     #'adjust:' #right
  1290                     #'resizeForLabel:' true
  1212                     #'resizeForLabel:' true
  1291                 )
  1213                 )
  1292                  #(#InputFieldSpec
  1214                  #(#InputFieldSpec
  1293                     #'name:' 'enabledField'
  1215                     #'name:' 'enabledField'
  1294                     #'layout:' #(#LayoutFrame 90 0 40 0 0 1.0 62 0)
  1216                     #'layout:' #(#LayoutFrame 110 0 40 0 0 1.0 62 0)
  1295                     #'activeHelpKey:' #enbled
  1217                     #'activeHelpKey:' #enbled
  1296                     #'tabable:' true
  1218                     #'tabable:' true
  1297                     #'model:' #enabled
  1219                     #'model:' #enabled
  1298                     #'type:' #symbolOrNil
  1220                     #'type:' #symbolOrNil
  1299                 )
  1221                 )
  1300                  #(#LabelSpec
  1222                  #(#LabelSpec
  1301                     #'name:' 'accessCharLabel'
  1223                     #'name:' 'accessCharLabel'
  1302                     #'layout:' #(#AlignmentOrigin 171 0 90 0 1 0.5)
  1224                     #'layout:' #(#AlignmentOrigin 217 0 90 0 1 0.5)
  1303                     #'label:' 'Access Character Position:'
  1225                     #'label:' 'Access Character Position:'
  1304                     #'adjust:' #right
  1226                     #'adjust:' #right
  1305                     #'resizeForLabel:' true
  1227                     #'resizeForLabel:' true
  1306                 )
  1228                 )
  1307                  #(#InputFieldSpec
  1229                  #(#InputFieldSpec
  1308                     #'name:' 'accessCharField'
  1230                     #'name:' 'accessCharField'
  1309                     #'layout:' #(#LayoutFrame 177 0 79 0 0 1.0 101 0)
  1231                     #'layout:' #(#LayoutFrame 220 0 79 0 0 1.0 101 0)
  1310                     #'activeHelpKey:' #accessCharaterPos
  1232                     #'activeHelpKey:' #accessCharaterPos
  1311                     #'tabable:' true
  1233                     #'tabable:' true
  1312                     #'model:' #accessCharaterPos
  1234                     #'model:' #accessCharaterPos
  1313                     #'type:' #numberOrNil
  1235                     #'type:' #numberOrNil
  1314                 )
  1236                 )
  1334      
  1256      
  1335        #(#FullSpec
  1257        #(#FullSpec
  1336           #'window:' 
  1258           #'window:' 
  1337            #(#WindowSpec
  1259            #(#WindowSpec
  1338               #'name:' 'unnamed canvas'
  1260               #'name:' 'unnamed canvas'
  1339               #'layout:' #(#LayoutFrame 197 0 172 0 441 0 313 0)
  1261               #'layout:' #(#LayoutFrame 424 0 309 0 668 0 450 0)
  1340               #'label:' 'unnamed canvas'
  1262               #'label:' 'unnamed canvas'
  1341               #'min:' #(#Point 10 10)
  1263               #'min:' #(#Point 10 10)
  1342               #'max:' #(#Point 1280 1024)
  1264               #'max:' #(#Point 1280 1024)
  1343               #'bounds:' #(#Rectangle 197 172 442 314)
  1265               #'bounds:' #(#Rectangle 424 309 669 451)
  1344               #'usePreferredExtent:' false
  1266               #'usePreferredExtent:' false
  1345           )
  1267           )
  1346           #'component:' 
  1268           #'component:' 
  1347            #(#SpecCollection
  1269            #(#SpecCollection
  1348               #'collection:' 
  1270               #'collection:' 
  1349                #(
  1271                #(
  1350                  #(#LabelSpec
  1272                  #(#LabelSpec
  1351                     #'name:' 'retrieverLabel'
  1273                     #'name:' 'retrieverLabel'
  1352                     #'layout:' #(#AlignmentOrigin 87 0 26 0 1 0.5)
  1274                     #'layout:' #(#AlignmentOrigin 107 0 26 0 1 0.5)
  1353                     #'label:' 'Retriever:'
  1275                     #'label:' 'Retriever:'
  1354                     #'adjust:' #right
  1276                     #'adjust:' #right
  1355                     #'resizeForLabel:' true
  1277                     #'resizeForLabel:' true
  1356                 )
  1278                 )
  1357                  #(#InputFieldSpec
  1279                  #(#InputFieldSpec
  1358                     #'name:' 'retrieverField'
  1280                     #'name:' 'retrieverField'
  1359                     #'layout:' #(#LayoutFrame 90 0 15 0 0 1.0 37 0)
  1281                     #'layout:' #(#LayoutFrame 110 0 15 0 0 1.0 37 0)
  1360                     #'activeHelpKey:' #retriever
  1282                     #'activeHelpKey:' #retriever
  1361                     #'tabable:' true
  1283                     #'tabable:' true
  1362                     #'model:' #retriever
  1284                     #'model:' #retriever
  1363                     #'type:' #symbolOrNil
  1285                     #'type:' #symbolOrNil
  1364                 )
  1286                 )
  1365                  #(#LabelSpec
  1287                  #(#LabelSpec
  1366                     #'name:' 'iconLabel'
  1288                     #'name:' 'iconLabel'
  1367                     #'layout:' #(#AlignmentOrigin 87 0 51 0 1 0.5)
  1289                     #'layout:' #(#AlignmentOrigin 107 0 51 0 1 0.5)
  1368                     #'label:' 'Selector:'
  1290                     #'label:' 'Selector:'
  1369                     #'adjust:' #right
  1291                     #'adjust:' #right
  1370                     #'resizeForLabel:' true
  1292                     #'resizeForLabel:' true
  1371                 )
  1293                 )
  1372                  #(#InputFieldSpec
  1294                  #(#InputFieldSpec
  1373                     #'name:' 'iconField'
  1295                     #'name:' 'iconField'
  1374                     #'layout:' #(#LayoutFrame 90 0 40 0 0 1.0 62 0)
  1296                     #'layout:' #(#LayoutFrame 110 0 40 0 0 1.0 62 0)
  1375                     #'activeHelpKey:' #icon
  1297                     #'activeHelpKey:' #icon
  1376                     #'tabable:' true
  1298                     #'tabable:' true
  1377                     #'model:' #icon
  1299                     #'model:' #icon
  1378                     #'type:' #symbolOrNil
  1300                     #'type:' #symbolOrNil
  1379                 )
  1301                 )
  1385                     #'model:' #iconAndLabel
  1307                     #'model:' #iconAndLabel
  1386                     #'label:' 'Image & Label'
  1308                     #'label:' 'Image & Label'
  1387                 )
  1309                 )
  1388                  #(#ActionButtonSpec
  1310                  #(#ActionButtonSpec
  1389                     #'name:' 'imageEditorButton'
  1311                     #'name:' 'imageEditorButton'
  1390                     #'layout:' #(#LayoutFrame 90 0 66 0 0 1 90 0)
  1312                     #'layout:' #(#LayoutFrame 110 0 66 0 0 1 90 0)
  1391                     #'label:' 'Image Editor'
  1313                     #'label:' 'Image Editor'
  1392                     #'model:' #doEditImage
  1314                     #'model:' #doEditImage
  1393                 )
  1315                 )
  1394               )
  1316               )
  1395           )
  1317           )
  1909 
  1831 
  1910 !
  1832 !
  1911 
  1833 
  1912 loadFromMessage: aMessage
  1834 loadFromMessage: aMessage
  1913 
  1835 
  1914     self checkModified ifTrue:
  1836     ((aMessage size > 0) and: [self checkModified])
       
  1837     ifTrue:
  1915     [
  1838     [
  1916         |readStream aClass aSelector|
  1839         |readStream aClass aSelector|
  1917         readStream := aMessage readStream.
  1840         readStream := aMessage readStream.
  1918         aClass := Smalltalk at: (readStream upTo: $ ) asSymbol.
  1841         aClass := Smalltalk at: (readStream upTo: $ ) asSymbol.
  1919         aSelector :=  readStream upToEnd asSymbol.
  1842         aSelector :=  readStream upToEnd asSymbol.
  2011 
  1934 
  2012 !
  1935 !
  2013 
  1936 
  2014 doFromClass
  1937 doFromClass
  2015 
  1938 
  2016     aspects at:#classNameChannel  put:(self specClass asValue).
  1939     "aspects at:#classNameChannel  put:(self specClass asValue).
  2017     aspects at:#methodNameChannel put:(self painter selectorName asValue).
  1940     aspects at:#methodNameChannel put:(self painter selectorName asValue).
  2018 
  1941 
  2019     (self openDialogInterface:#classAndMethodSpec) ifTrue:[
  1942     (self openDialogInterface:#classAndMethodSpec) ifTrue:[
  2020         self buildFrom:(aspects at:#classNameChannel) value
  1943         self buildFrom:(aspects at:#classNameChannel) value
  2021            andSelector:(aspects at:#methodNameChannel) value
  1944            andSelector:(aspects at:#methodNameChannel) value
  2022     ].
  1945     ]."
       
  1946     self loadFromInClassesOf:  #Object
  2023 !
  1947 !
  2024 
  1948 
  2025 doInstallHelp
  1949 doInstallHelp
  2026     "install help text
  1950     "install help text
  2027     "
  1951     "
  2147 doStepUp
  2071 doStepUp
  2148     "move selected child before previous child
  2072     "move selected child before previous child
  2149     "
  2073     "
  2150     self painter selectedNodeChangeSequenceOrder:-1.
  2074     self painter selectedNodeChangeSequenceOrder:-1.
  2151     isModified := true.
  2075     isModified := true.
       
  2076 !
       
  2077 
       
  2078 loadFromClassWithSuperclass
       
  2079 
       
  2080     |box|
       
  2081     box := EnterBox new.
       
  2082     box title:'Name of superclass:'.
       
  2083     box okText:'OK'.
       
  2084     box abortText:'Cancel'.
       
  2085     box initialText: 'ApplicationModel'.
       
  2086     box showAtPointer.
       
  2087     box accepted
       
  2088     ifTrue:
       
  2089     [            
       
  2090         self loadFromInClassesOf: box contents asSymbol
       
  2091     ].
       
  2092 
       
  2093 
       
  2094 
       
  2095 !
       
  2096 
       
  2097 loadFromInClassesOf: aSuperclassOrSymbol
       
  2098 
       
  2099     self loadFromMessage: 
       
  2100         (ResourceSelectionBrowser
       
  2101             request: 'Load Menu From Class'
       
  2102             onSuperclass: aSuperclassOrSymbol
       
  2103             andClass: specClass
       
  2104             andSelector: nil
       
  2105             withResourceTypes: #(menu))
  2152 ! !
  2106 ! !
  2153 
  2107 
  2154 !MenuEditor methodsFor:'values'!
  2108 !MenuEditor methodsFor:'values'!
  2155 
  2109 
  2156 painter
  2110 painter
  2422 "
  2376 "
  2423 
  2377 
  2424 
  2378 
  2425 ! !
  2379 ! !
  2426 
  2380 
       
  2381 !MenuEditor::Painter class methodsFor:'initialization'!
       
  2382 
       
  2383 initialize
       
  2384 
       
  2385     super initialize.
       
  2386 
       
  2387     Images := nil
       
  2388 ! !
       
  2389 
  2427 !MenuEditor::Painter class methodsFor:'resources'!
  2390 !MenuEditor::Painter class methodsFor:'resources'!
  2428 
  2391 
  2429 closedSubmenuImage
  2392 closedSubmenuImage
  2430     "ImageEditor openOnClass:self andSelector:#closedSubmenuImage"
  2393     "ImageEditor openOnClass:self andSelector:#closedSubmenuImage"
  2431 
  2394 
  2782 !MenuEditor class methodsFor:'documentation'!
  2745 !MenuEditor class methodsFor:'documentation'!
  2783 
  2746 
  2784 version
  2747 version
  2785     ^ '$Header$'
  2748     ^ '$Header$'
  2786 ! !
  2749 ! !
       
  2750 MenuEditor initialize!