MenuEditor.st
changeset 577 d9f9745572b2
parent 576 c357919e636f
child 578 1db32e082cd6
equal deleted inserted replaced
576:c357919e636f 577:d9f9745572b2
   117     UIHelpTool openOnClass:MenuEditor    
   117     UIHelpTool openOnClass:MenuEditor    
   118     "
   118     "
   119 
   119 
   120   ^ super helpSpec addPairsFrom:#(
   120   ^ super helpSpec addPairsFrom:#(
   121 
   121 
   122 #accessCharaterPos
   122 
   123 'Index of the access character position into the textual label (optional).'
       
   124 
   123 
   125 #addMenuItem
   124 #addMenuItem
   126 'Adds a new menu item.'
   125 'Adds a new menu item.'
   127 
   126 
   128 #addMenuSeparator
   127 #addMenuSeparator
   132 'Adds a new submenu.'
   131 'Adds a new submenu.'
   133 
   132 
   134 #addSubMenuLink
   133 #addSubMenuLink
   135 'Adds a new linked submenu.'
   134 'Adds a new linked submenu.'
   136 
   135 
   137 #argument
   136 #basicsAction
   138 'An argument passed to the value method, if the value selector is a one- or two-arg selector (i.e. ends with '':''). The argument is passed as a string.'
   137 'A block or a selector with 0, 1 (the argument field), or 2 (the selected item) arguments.'
   139 
   138 
   140 #enbled
   139 #basicsArgument
   141 'This enabled field specifies the name of the aspect (-method or binding) in your application, which returns a value holder holding a boolean, a block which evaluates to either true or false, a selector which returns either true or false or simply true or false. The value, true or false, specifies whether the respective field can be selected, a value of true, or not, a value of false.'
   140 'An argument passed to above selector, if it is a 1- or a 2-argument selector.'
       
   141 
       
   142 #basicsIndication
       
   143 'A boolean value holder, a boolean evaluating block, or a boolean returning selector for specifying indication state.'
       
   144 
       
   145 #basicsIsButton
       
   146 'Toggles on/off a button behavior.'
       
   147 
       
   148 #basicsLabel
       
   149 'Label of the item.'
       
   150 
       
   151 #basicsMenu
       
   152 'A value holder providing the submenu to be opened if item is selected.'
       
   153 
       
   154 #basicsMenuArgument
       
   155 'An argument passes with menu selector.'
       
   156 
       
   157 #basicsNameKey
       
   158 'Unique identifier of the item (optional).'
       
   159 
       
   160 #basicsSelector
       
   161 'Selector for the generated menu should be installed.'
       
   162 
       
   163 #basicsSeparatorType
       
   164 'List of valid separators.'
       
   165 
       
   166 #basicsTranslateLabel
       
   167 'Toggles on/off translation behavior of the label via class resource file.'
       
   168 
       
   169 #detailsAccelerator
       
   170 'Key to be pressed to select the menu item from the keyboard (accelerator key).'
       
   171 
       
   172 #detailsAccessCharaterPosition
       
   173 'Index of the access character position of the textual label (optional).'
       
   174 
       
   175 #detailsEnabled
       
   176 'A boolean value holder providing en- or disabling of the menu item..'
       
   177 
       
   178 #detailsVisibility
       
   179 'A boolean value holder providing visibility of the menu item.'
       
   180 
       
   181 #fileBrowseMenuClass
       
   182 'Opens a System Browser on current menu class and selector.'
       
   183 
       
   184 #fileDefineMenuClass
       
   185 'Opens a dialog to define current menu class.'
   142 
   186 
   143 #fileLoad
   187 #fileLoad
   144 'Opens a dialog for selecting a menu spec.'
   188 'Opens a dialog for selecting a menu spec.'
   145 
   189 
   146 #fileNew
   190 #fileNew
   147 'Creates a new menu spec.'
   191 'Creates a new menu spec.'
   148 
   192 
       
   193 #filePickAMenu
       
   194 'Changes the cursor for moving it over another menu view to load its menu spec.'
       
   195 
   149 #fileSave
   196 #fileSave
   150 'Saves current menu spec and if modified the help spec.'
   197 'Saves current menu spec and if modified the help spec.'
   151 
   198 
   152 #icon
   199 
   153 'Selector which returns an image to be displayed.'
   200 
   154 
   201 #imageImageAndLabel
   155 #iconAndLabel
   202 'Toggles on/off displaying both image and textual label.'
   156 'Specifies that both image and textual label shall be shown.'
   203 
   157 
   204 #imageImageEditor
   158 #indication
   205 'Opens an Image Editor on retriever and selector.'
   159 'Indication field specifying the name of the aspect (-method or binding) in your application, a value holder holding a boolean, a block which evaluates to either true or false, a selector which returns either true or false or simply true or false. The value, true or false, specifies whether the shown indicator is switched on or off.'
   206 
   160 
   207 #imageRetriever
   161 #isVisible
   208 'Class implementing the image resource method. If no class is given, the current application class will be taken.'
   162 'A value holder providing visibility of the menu item.'
   209 
   163 
   210 #imageSelector
   164 #label
   211 'Selector which returns an image.'
   165 'Label of the item. If the ''retriever/selector'' is set, and returns an image, the image is used as the displayed label. Dependent on the state of the ''Image & Label'' flag, both the image and the label are shown.'
       
   166 
       
   167 #menuSelector
       
   168 'Name of the selector under which the generated menu should be installed and is accessable.'
       
   169 
       
   170 #nameKey
       
   171 'Unique identifier of the item (optional).'
       
   172 
       
   173 #retriever
       
   174 'Name of the class implementing the image selector. This selector is specified by ''selector''. If no class is given, the current application should implement the specified image selector.'
       
   175 
       
   176 #seperatorList
       
   177 'List of valid separators.'
       
   178 
       
   179 #shortcutKey
       
   180 'Key to be pressed to select the menu item from the keyboard (accelerator key).'
       
   181 
       
   182 #submenuChannel
       
   183 'A value holder providing the submenu to be opened if item is selected.'
       
   184 
       
   185 #value
       
   186 'An action being either a block or a selector. Depending on the number of arguments to the action, the action will be called with the respective arguments. There can either zero, one or two arguments. The first argument to the action is the argument derived from the argument field and the second argument the selected item.'
       
   187 
   212 
   188 )
   213 )
   189 ! !
   214 ! !
   190 
   215 
   191 !MenuEditor class methodsFor:'interface specs'!
   216 !MenuEditor class methodsFor:'interface specs'!
   207      
   232      
   208        #(#FullSpec
   233        #(#FullSpec
   209           #'window:' 
   234           #'window:' 
   210            #(#WindowSpec
   235            #(#WindowSpec
   211               #'name:' 'unnamed canvas'
   236               #'name:' 'unnamed canvas'
   212               #'layout:' #(#LayoutFrame 219 0 193 0 485 0 511 0)
   237               #'layout:' #(#LayoutFrame 73 0 152 0 339 0 470 0)
   213               #'label:' 'unnamed canvas'
   238               #'label:' 'unnamed canvas'
   214               #'min:' #(#Point 10 10)
   239               #'min:' #(#Point 10 10)
   215               #'max:' #(#Point 1160 870)
   240               #'max:' #(#Point 1160 870)
   216               #'bounds:' #(#Rectangle 219 193 486 512)
   241               #'bounds:' #(#Rectangle 73 152 340 471)
   217               #'usePreferredExtent:' false
   242               #'usePreferredExtent:' false
   218           )
   243           )
   219           #'component:' 
   244           #'component:' 
   220            #(#SpecCollection
   245            #(#SpecCollection
   221               #'collection:' 
   246               #'collection:' 
   222                #(
   247                #(
   223                  #(#LabelSpec
   248                  #(#LabelSpec
   224                     #'name:' 'nameKeyLabel'
   249                     #'name:' 'nameKeyLabel'
   225                     #'layout:' #(#AlignmentOrigin 107 0 26 0 1 0.5)
   250                     #'layout:' #(#AlignmentOrigin 107 0 26 0 1 0.5)
   226                     #'label:' 'NameKey:'
   251                     #'label:' 'Name Key:'
   227                     #'adjust:' #right
   252                     #'adjust:' #right
   228                     #'resizeForLabel:' true
   253                     #'resizeForLabel:' true
   229                 )
   254                 )
   230                  #(#InputFieldSpec
   255                  #(#InputFieldSpec
   231                     #'name:' 'nameKeyField'
   256                     #'name:' 'nameKeyField'
   232                     #'layout:' #(#LayoutFrame 110 0 15 0 -5 1.0 37 0)
   257                     #'layout:' #(#LayoutFrame 110 0 15 0 -5 1.0 37 0)
   233                     #'activeHelpKey:' #nameKey
   258                     #'activeHelpKey:' #basicsNameKey
   234                     #'tabable:' true
   259                     #'tabable:' true
   235                     #'model:' #nameKey
   260                     #'model:' #nameKey
   236                     #'type:' #symbolOrNil
   261                     #'type:' #symbolOrNil
   237                     #'acceptOnReturn:' false
   262                     #'acceptOnReturn:' false
   238                     #'acceptOnTab:' false
   263                     #'acceptOnTab:' false
   245                     #'resizeForLabel:' true
   270                     #'resizeForLabel:' true
   246                 )
   271                 )
   247                  #(#InputFieldSpec
   272                  #(#InputFieldSpec
   248                     #'name:' 'labelField'
   273                     #'name:' 'labelField'
   249                     #'layout:' #(#LayoutFrame 110 0 40 0 -5 1.0 62 0)
   274                     #'layout:' #(#LayoutFrame 110 0 40 0 -5 1.0 62 0)
   250                     #'activeHelpKey:' #label
   275                     #'activeHelpKey:' #basicsLabel
   251                     #'tabable:' true
   276                     #'tabable:' true
   252                     #'model:' #label
   277                     #'model:' #label
   253                     #'acceptOnReturn:' false
   278                     #'acceptOnReturn:' false
   254                     #'acceptOnTab:' false
   279                     #'acceptOnTab:' false
   255                 )
   280                 )
   256                  #(#LabelSpec
   281                  #(#LabelSpec
   257                     #'name:' 'valueLabel'
   282                     #'name:' 'valueLabel'
   258                     #'layout:' #(#AlignmentOrigin 107 0 90 0 1 0.5)
   283                     #'layout:' #(#AlignmentOrigin 107 0 90 0 1 0.5)
   259                     #'label:' 'Value:'
   284                     #'label:' 'Action:'
   260                     #'adjust:' #right
   285                     #'adjust:' #right
   261                     #'resizeForLabel:' true
   286                     #'resizeForLabel:' true
   262                 )
   287                 )
   263                  #(#InputFieldSpec
   288                  #(#InputFieldSpec
   264                     #'name:' 'valueField'
   289                     #'name:' 'valueField'
   265                     #'layout:' #(#LayoutFrame 110 0 79 0 -5 1.0 101 0)
   290                     #'layout:' #(#LayoutFrame 110 0 79 0 -5 1.0 101 0)
   266                     #'activeHelpKey:' #value
   291                     #'activeHelpKey:' #basicsAction
   267                     #'tabable:' true
   292                     #'tabable:' true
   268                     #'model:' #value
   293                     #'model:' #value
   269                     #'type:' #symbolOrNil
   294                     #'type:' #symbolOrNil
   270                     #'acceptOnReturn:' false
   295                     #'acceptOnReturn:' false
   271                     #'acceptOnTab:' false
   296                     #'acceptOnTab:' false
   278                     #'resizeForLabel:' true
   303                     #'resizeForLabel:' true
   279                 )
   304                 )
   280                  #(#InputFieldSpec
   305                  #(#InputFieldSpec
   281                     #'name:' 'argumentField'
   306                     #'name:' 'argumentField'
   282                     #'layout:' #(#LayoutFrame 110 0 104 0 -5 1.0 126 0)
   307                     #'layout:' #(#LayoutFrame 110 0 104 0 -5 1.0 126 0)
   283                     #'activeHelpKey:' #argument
   308                     #'activeHelpKey:' #basicsArgument
   284                     #'tabable:' true
   309                     #'tabable:' true
   285                     #'model:' #argument
   310                     #'model:' #argument
   286                     #'type:' #string
   311                     #'type:' #string
   287                     #'acceptOnReturn:' false
   312                     #'acceptOnReturn:' false
   288                     #'acceptOnTab:' false
   313                     #'acceptOnTab:' false
   295                     #'resizeForLabel:' true
   320                     #'resizeForLabel:' true
   296                 )
   321                 )
   297                  #(#InputFieldSpec
   322                  #(#InputFieldSpec
   298                     #'name:' 'indicationField'
   323                     #'name:' 'indicationField'
   299                     #'layout:' #(#LayoutFrame 110 0 144 0 -5 1.0 166 0)
   324                     #'layout:' #(#LayoutFrame 110 0 144 0 -5 1.0 166 0)
   300                     #'activeHelpKey:' #indication
   325                     #'activeHelpKey:' #basicsIndication
   301                     #'tabable:' true
   326                     #'tabable:' true
   302                     #'model:' #indication
   327                     #'model:' #indication
   303                     #'type:' #symbolOrNil
   328                     #'type:' #symbolOrNil
   304                     #'acceptOnReturn:' false
   329                     #'acceptOnReturn:' false
   305                     #'acceptOnTab:' false
   330                     #'acceptOnTab:' false
   306                 )
   331                 )
   307                  #(#CheckBoxSpec
   332                  #(#CheckBoxSpec
   308                     #'name:' 'translateLabelCheckBox'
   333                     #'name:' 'translateLabelCheckBox'
   309                     #'layout:' #(#Point 20 192)
   334                     #'layout:' #(#Point 20 192)
   310                     #'activeHelpKey:' #translateLabel
   335                     #'activeHelpKey:' #basicsTranslateLabel
   311                     #'tabable:' true
   336                     #'tabable:' true
   312                     #'model:' #translateLabel
   337                     #'model:' #translateLabel
   313                     #'label:' 'Translate Label'
   338                     #'label:' 'Translate Label'
   314                 )
   339                 )
   315                  #(#CheckBoxSpec
   340                  #(#CheckBoxSpec
   316                     #'name:' 'isButtonCheckBox'
   341                     #'name:' 'isButtonCheckBox'
   317                     #'layout:' #(#Point 20 221)
   342                     #'layout:' #(#Point 20 221)
   318                     #'activeHelpKey:' #translateLabel
   343                     #'activeHelpKey:' #basicsIsButton
   319                     #'tabable:' true
   344                     #'tabable:' true
   320                     #'model:' #isButton
   345                     #'model:' #isButton
   321                     #'label:' 'Is Button'
   346                     #'label:' 'Is Button'
   322                 )
   347                 )
   323               )
   348               )
   342      
   367      
   343        #(#FullSpec
   368        #(#FullSpec
   344           #'window:' 
   369           #'window:' 
   345            #(#WindowSpec
   370            #(#WindowSpec
   346               #'name:' 'unnamed canvas'
   371               #'name:' 'unnamed canvas'
   347               #'layout:' #(#LayoutFrame 374 0 432 0 640 0 750 0)
   372               #'layout:' #(#LayoutFrame 73 0 152 0 339 0 470 0)
   348               #'label:' 'unnamed canvas'
   373               #'label:' 'unnamed canvas'
   349               #'min:' #(#Point 10 10)
   374               #'min:' #(#Point 10 10)
   350               #'max:' #(#Point 1280 1024)
   375               #'max:' #(#Point 1280 1024)
   351               #'bounds:' #(#Rectangle 374 432 641 751)
   376               #'bounds:' #(#Rectangle 73 152 340 471)
   352               #'usePreferredExtent:' false
   377               #'usePreferredExtent:' false
   353           )
   378           )
   354           #'component:' 
   379           #'component:' 
   355            #(#SpecCollection
   380            #(#SpecCollection
   356               #'collection:' 
   381               #'collection:' 
   357                #(
   382                #(
   358                  #(#LabelSpec
   383                  #(#LabelSpec
   359                     #'name:' 'nameKeyLabel'
   384                     #'name:' 'nameKeyLabel'
   360                     #'layout:' #(#AlignmentOrigin 107 0 26 0 1 0.5)
   385                     #'layout:' #(#AlignmentOrigin 107 0 26 0 1 0.5)
   361                     #'activeHelpKey:' #nameKey
   386                     #'activeHelpKey:' #nameKey
   362                     #'label:' 'NameKey:'
   387                     #'label:' 'Name Key:'
   363                     #'adjust:' #right
   388                     #'adjust:' #right
   364                     #'resizeForLabel:' true
   389                     #'resizeForLabel:' true
   365                 )
   390                 )
   366                  #(#InputFieldSpec
   391                  #(#InputFieldSpec
   367                     #'name:' 'nameKeyField'
   392                     #'name:' 'nameKeyField'
   368                     #'layout:' #(#LayoutFrame 110 0 15 0 -5 1.0 37 0)
   393                     #'layout:' #(#LayoutFrame 110 0 15 0 -5 1.0 37 0)
   369                     #'activeHelpKey:' #nameKey
   394                     #'activeHelpKey:' #basicsNameKey
   370                     #'tabable:' true
   395                     #'tabable:' true
   371                     #'model:' #nameKey
   396                     #'model:' #nameKey
   372                     #'type:' #symbolOrNil
   397                     #'type:' #symbolOrNil
   373                     #'acceptOnReturn:' false
   398                     #'acceptOnReturn:' false
   374                     #'acceptOnTab:' false
   399                     #'acceptOnTab:' false
   380                     #'resizeForLabel:' true
   405                     #'resizeForLabel:' true
   381                 )
   406                 )
   382                  #(#InputFieldSpec
   407                  #(#InputFieldSpec
   383                     #'name:' 'labelField'
   408                     #'name:' 'labelField'
   384                     #'layout:' #(#LayoutFrame 110 0 40 0 -5 1.0 62 0)
   409                     #'layout:' #(#LayoutFrame 110 0 40 0 -5 1.0 62 0)
   385                     #'activeHelpKey:' #label
   410                     #'activeHelpKey:' #basicsLabel
   386                     #'tabable:' true
   411                     #'tabable:' true
   387                     #'model:' #label
   412                     #'model:' #label
   388                     #'acceptOnReturn:' false
   413                     #'acceptOnReturn:' false
   389                     #'acceptOnTab:' false
   414                     #'acceptOnTab:' false
   390                 )
   415                 )
   395                     #'resizeForLabel:' true
   420                     #'resizeForLabel:' true
   396                 )
   421                 )
   397                  #(#InputFieldSpec
   422                  #(#InputFieldSpec
   398                     #'name:' 'menuField'
   423                     #'name:' 'menuField'
   399                     #'layout:' #(#LayoutFrame 110 0 65 0 -5 1.0 87 0)
   424                     #'layout:' #(#LayoutFrame 110 0 65 0 -5 1.0 87 0)
   400                     #'activeHelpKey:' #submenuChannel
   425                     #'activeHelpKey:' #basicsMenu
   401                     #'tabable:' true
   426                     #'tabable:' true
   402                     #'model:' #submenuChannel
   427                     #'model:' #submenuChannel
   403                     #'type:' #symbolOrNil
   428                     #'type:' #symbolOrNil
   404                     #'acceptOnReturn:' false
   429                     #'acceptOnReturn:' false
   405                     #'acceptOnTab:' false
   430                     #'acceptOnTab:' false
   411                     #'resizeForLabel:' true
   436                     #'resizeForLabel:' true
   412                 )
   437                 )
   413                  #(#InputFieldSpec
   438                  #(#InputFieldSpec
   414                     #'name:' 'argumentField'
   439                     #'name:' 'argumentField'
   415                     #'layout:' #(#LayoutFrame 110 0 90 0 -5 1.0 112 0)
   440                     #'layout:' #(#LayoutFrame 110 0 90 0 -5 1.0 112 0)
   416                     #'activeHelpKey:' #submenuChannel
   441                     #'activeHelpKey:' #basicsMenuArgument
   417                     #'tabable:' true
   442                     #'tabable:' true
   418                     #'model:' #argument
   443                     #'model:' #argument
   419                     #'acceptOnReturn:' false
   444                     #'acceptOnReturn:' false
   420                     #'acceptOnTab:' false
   445                     #'acceptOnTab:' false
   421                 )
   446                 )
   422                  #(#CheckBoxSpec
   447                  #(#CheckBoxSpec
   423                     #'name:' 'translateLabelCheckBox'
   448                     #'name:' 'translateLabelCheckBox'
   424                     #'layout:' #(#Point 20 128)
   449                     #'layout:' #(#Point 20 128)
   425                     #'activeHelpKey:' #translateLabel
   450                     #'activeHelpKey:' #basicsTranslateLabel
   426                     #'tabable:' true
   451                     #'tabable:' true
   427                     #'model:' #translateLabel
   452                     #'model:' #translateLabel
   428                     #'label:' 'Translate Label'
   453                     #'label:' 'Translate Label'
   429                 )
   454                 )
   430               )
   455               )
   449      
   474      
   450        #(#FullSpec
   475        #(#FullSpec
   451           #'window:' 
   476           #'window:' 
   452            #(#WindowSpec
   477            #(#WindowSpec
   453               #'name:' 'unnamed canvas'
   478               #'name:' 'unnamed canvas'
   454               #'layout:' #(#LayoutFrame 456 0 430 0 722 0 748 0)
   479               #'layout:' #(#LayoutFrame 73 0 152 0 339 0 470 0)
   455               #'label:' 'unnamed canvas'
   480               #'label:' 'unnamed canvas'
   456               #'min:' #(#Point 10 10)
   481               #'min:' #(#Point 10 10)
   457               #'max:' #(#Point 1280 1024)
   482               #'max:' #(#Point 1280 1024)
   458               #'bounds:' #(#Rectangle 456 430 723 749)
   483               #'bounds:' #(#Rectangle 73 152 340 471)
   459               #'usePreferredExtent:' false
   484               #'usePreferredExtent:' false
   460           )
   485           )
   461           #'component:' 
   486           #'component:' 
   462            #(#SpecCollection
   487            #(#SpecCollection
   463               #'collection:' 
   488               #'collection:' 
   464                #(
   489                #(
   465                  #(#LabelSpec
   490                  #(#LabelSpec
   466                     #'name:' 'nameKeyLabel'
   491                     #'name:' 'nameKeyLabel'
   467                     #'layout:' #(#AlignmentOrigin 107 0 26 0 1 0.5)
   492                     #'layout:' #(#AlignmentOrigin 107 0 26 0 1 0.5)
   468                     #'label:' 'NameKey:'
   493                     #'label:' 'Name Key:'
   469                     #'adjust:' #right
   494                     #'adjust:' #right
   470                     #'resizeForLabel:' true
   495                     #'resizeForLabel:' true
   471                 )
   496                 )
   472                  #(#InputFieldSpec
   497                  #(#InputFieldSpec
   473                     #'name:' 'nameKeyField'
   498                     #'name:' 'nameKeyField'
   474                     #'layout:' #(#LayoutFrame 110 0 15 0 -5 1.0 37 0)
   499                     #'layout:' #(#LayoutFrame 110 0 15 0 -5 1.0 37 0)
   475                     #'activeHelpKey:' #nameKey
   500                     #'activeHelpKey:' #basicsNameKey
   476                     #'tabable:' true
   501                     #'tabable:' true
   477                     #'model:' #nameKey
   502                     #'model:' #nameKey
   478                     #'type:' #symbolOrNil
   503                     #'type:' #symbolOrNil
   479                     #'acceptOnReturn:' false
   504                     #'acceptOnReturn:' false
   480                     #'acceptOnTab:' false
   505                     #'acceptOnTab:' false
   487                     #'resizeForLabel:' true
   512                     #'resizeForLabel:' true
   488                 )
   513                 )
   489                  #(#InputFieldSpec
   514                  #(#InputFieldSpec
   490                     #'name:' 'labelField'
   515                     #'name:' 'labelField'
   491                     #'layout:' #(#LayoutFrame 110 0 40 0 -5 1.0 62 0)
   516                     #'layout:' #(#LayoutFrame 110 0 40 0 -5 1.0 62 0)
   492                     #'activeHelpKey:' #label
   517                     #'activeHelpKey:' #basicsLabel
   493                     #'tabable:' true
   518                     #'tabable:' true
   494                     #'model:' #label
   519                     #'model:' #label
   495                     #'acceptOnReturn:' false
   520                     #'acceptOnReturn:' false
   496                     #'acceptOnTab:' false
   521                     #'acceptOnTab:' false
   497                 )
   522                 )
   498                  #(#CheckBoxSpec
   523                  #(#CheckBoxSpec
   499                     #'name:' 'translateLabelCheckBox'
   524                     #'name:' 'translateLabelCheckBox'
   500                     #'layout:' #(#Point 20 100)
   525                     #'layout:' #(#Point 20 100)
   501                     #'activeHelpKey:' #translateLabel
   526                     #'activeHelpKey:' #basicsTranslateLabel
   502                     #'tabable:' true
   527                     #'tabable:' true
   503                     #'model:' #translateLabel
   528                     #'model:' #translateLabel
   504                     #'label:' 'Translate Label'
   529                     #'label:' 'Translate Label'
   505                 )
   530                 )
   506               )
   531               )
   525      
   550      
   526        #(#FullSpec
   551        #(#FullSpec
   527           #'window:' 
   552           #'window:' 
   528            #(#WindowSpec
   553            #(#WindowSpec
   529               #'name:' 'unnamed canvas'
   554               #'name:' 'unnamed canvas'
   530               #'layout:' #(#LayoutFrame 230 0 231 0 496 0 549 0)
   555               #'layout:' #(#LayoutFrame 73 0 152 0 339 0 470 0)
   531               #'label:' 'unnamed canvas'
   556               #'label:' 'unnamed canvas'
   532               #'min:' #(#Point 10 10)
   557               #'min:' #(#Point 10 10)
   533               #'max:' #(#Point 1280 1024)
   558               #'max:' #(#Point 1280 1024)
   534               #'bounds:' #(#Rectangle 230 231 497 550)
   559               #'bounds:' #(#Rectangle 73 152 340 471)
   535               #'usePreferredExtent:' false
   560               #'usePreferredExtent:' false
   536           )
   561           )
   537           #'component:' 
   562           #'component:' 
   538            #(#SpecCollection
   563            #(#SpecCollection
   539               #'collection:' 
   564               #'collection:' 
   546                     #'resizeForLabel:' true
   571                     #'resizeForLabel:' true
   547                 )
   572                 )
   548                  #(#InputFieldSpec
   573                  #(#InputFieldSpec
   549                     #'name:' 'selectorField'
   574                     #'name:' 'selectorField'
   550                     #'layout:' #(#LayoutFrame 110 0 15 0 -5 1.0 37 0)
   575                     #'layout:' #(#LayoutFrame 110 0 15 0 -5 1.0 37 0)
   551                     #'activeHelpKey:' #menuSelector
   576                     #'activeHelpKey:' #basicsSelector
   552                     #'tabable:' true
   577                     #'tabable:' true
   553                     #'model:' #label
   578                     #'model:' #label
   554                     #'acceptOnReturn:' false
   579                     #'acceptOnReturn:' false
   555                     #'acceptOnTab:' false
   580                     #'acceptOnTab:' false
   556                 )
   581                 )
   576      
   601      
   577        #(#FullSpec
   602        #(#FullSpec
   578           #'window:' 
   603           #'window:' 
   579            #(#WindowSpec
   604            #(#WindowSpec
   580               #'name:' 'unnamed canvas'
   605               #'name:' 'unnamed canvas'
   581               #'layout:' #(#LayoutFrame 359 0 319 0 625 0 637 0)
   606               #'layout:' #(#LayoutFrame 73 0 152 0 339 0 470 0)
   582               #'label:' 'unnamed canvas'
   607               #'label:' 'unnamed canvas'
   583               #'min:' #(#Point 10 10)
   608               #'min:' #(#Point 10 10)
   584               #'max:' #(#Point 1160 870)
   609               #'max:' #(#Point 1160 870)
   585               #'bounds:' #(#Rectangle 359 319 626 638)
   610               #'bounds:' #(#Rectangle 73 152 340 471)
   586               #'usePreferredExtent:' false
   611               #'usePreferredExtent:' false
   587           )
   612           )
   588           #'component:' 
   613           #'component:' 
   589            #(#SpecCollection
   614            #(#SpecCollection
   590               #'collection:' 
   615               #'collection:' 
   597                     #'resizeForLabel:' true
   622                     #'resizeForLabel:' true
   598                 )
   623                 )
   599                  #(#ComboListSpec
   624                  #(#ComboListSpec
   600                     #'name:' 'seperatorList'
   625                     #'name:' 'seperatorList'
   601                     #'layout:' #(#LayoutFrame 132 0 15 0 -5 1.0 37 0)
   626                     #'layout:' #(#LayoutFrame 132 0 15 0 -5 1.0 37 0)
   602                     #'activeHelpKey:' #seperatorList
   627                     #'activeHelpKey:' #basicsSeparatorType
   603                     #'tabable:' true
   628                     #'tabable:' true
   604                     #'model:' #seperatorSelection
   629                     #'model:' #seperatorSelection
   605                     #'useIndex:' true
   630                     #'useIndex:' true
   606                 )
   631                 )
   607               )
   632               )
   682      
   707      
   683        #(#FullSpec
   708        #(#FullSpec
   684           #'window:' 
   709           #'window:' 
   685            #(#WindowSpec
   710            #(#WindowSpec
   686               #'name:' 'unnamed canvas'
   711               #'name:' 'unnamed canvas'
   687               #'layout:' #(#LayoutFrame 219 0 193 0 477 0 480 0)
   712               #'layout:' #(#LayoutFrame 73 0 152 0 331 0 439 0)
   688               #'label:' 'unnamed canvas'
   713               #'label:' 'unnamed canvas'
   689               #'min:' #(#Point 10 10)
   714               #'min:' #(#Point 10 10)
   690               #'max:' #(#Point 1280 1024)
   715               #'max:' #(#Point 1280 1024)
   691               #'bounds:' #(#Rectangle 219 193 478 481)
   716               #'bounds:' #(#Rectangle 73 152 332 440)
   692               #'usePreferredExtent:' false
   717               #'usePreferredExtent:' false
   693           )
   718           )
   694           #'component:' 
   719           #'component:' 
   695            #(#SpecCollection
   720            #(#SpecCollection
   696               #'collection:' 
   721               #'collection:' 
   703                     #'resizeForLabel:' true
   728                     #'resizeForLabel:' true
   704                 )
   729                 )
   705                  #(#InputFieldSpec
   730                  #(#InputFieldSpec
   706                     #'name:' 'shortcutKeyField'
   731                     #'name:' 'shortcutKeyField'
   707                     #'layout:' #(#LayoutFrame 110 0 15 0 -5 1.0 37 0)
   732                     #'layout:' #(#LayoutFrame 110 0 15 0 -5 1.0 37 0)
   708                     #'activeHelpKey:' #shortcutKey
   733                     #'activeHelpKey:' #detailsAccelerator
   709                     #'tabable:' true
   734                     #'tabable:' true
   710                     #'model:' #shortcutKey
   735                     #'model:' #shortcutKey
   711                     #'type:' #symbolOrNil
   736                     #'type:' #symbolOrNil
   712                     #'acceptOnReturn:' false
   737                     #'acceptOnReturn:' false
   713                     #'acceptOnTab:' false
   738                     #'acceptOnTab:' false
   720                     #'resizeForLabel:' true
   745                     #'resizeForLabel:' true
   721                 )
   746                 )
   722                  #(#InputFieldSpec
   747                  #(#InputFieldSpec
   723                     #'name:' 'enabledField'
   748                     #'name:' 'enabledField'
   724                     #'layout:' #(#LayoutFrame 110 0 40 0 -5 1.0 62 0)
   749                     #'layout:' #(#LayoutFrame 110 0 40 0 -5 1.0 62 0)
   725                     #'activeHelpKey:' #enbled
   750                     #'activeHelpKey:' #detailsEnabled
   726                     #'tabable:' true
   751                     #'tabable:' true
   727                     #'model:' #enabled
   752                     #'model:' #enabled
   728                     #'type:' #symbolOrNil
   753                     #'type:' #symbolOrNil
   729                     #'acceptOnReturn:' false
   754                     #'acceptOnReturn:' false
   730                     #'acceptOnTab:' false
   755                     #'acceptOnTab:' false
   737                     #'resizeForLabel:' true
   762                     #'resizeForLabel:' true
   738                 )
   763                 )
   739                  #(#InputFieldSpec
   764                  #(#InputFieldSpec
   740                     #'name:' 'isVisibleInputField'
   765                     #'name:' 'isVisibleInputField'
   741                     #'layout:' #(#LayoutFrame 110 0 65 0 -5 1.0 87 0)
   766                     #'layout:' #(#LayoutFrame 110 0 65 0 -5 1.0 87 0)
   742                     #'activeHelpKey:' #isVisible
   767                     #'activeHelpKey:' #detailsVisibility
   743                     #'tabable:' true
   768                     #'tabable:' true
   744                     #'model:' #isVisible
   769                     #'model:' #isVisible
   745                     #'type:' #symbolOrNil
   770                     #'type:' #symbolOrNil
   746                     #'acceptOnReturn:' false
   771                     #'acceptOnReturn:' false
   747                     #'acceptOnTab:' false
   772                     #'acceptOnTab:' false
   772                     #'resizeForLabel:' true
   797                     #'resizeForLabel:' true
   773                 )
   798                 )
   774                  #(#InputFieldSpec
   799                  #(#InputFieldSpec
   775                     #'name:' 'accessCharField'
   800                     #'name:' 'accessCharField'
   776                     #'layout:' #(#LayoutFrame 220 0 131 0 -5 1.0 153 0)
   801                     #'layout:' #(#LayoutFrame 220 0 131 0 -5 1.0 153 0)
   777                     #'activeHelpKey:' #accessCharaterPos
   802                     #'activeHelpKey:' #detailsAccessCharaterPosition
   778                     #'tabable:' true
   803                     #'tabable:' true
   779                     #'model:' #accessCharacterPos
   804                     #'model:' #accessCharacterPos
   780                     #'type:' #numberOrNil
   805                     #'type:' #numberOrNil
   781                     #'acceptOnReturn:' false
   806                     #'acceptOnReturn:' false
   782                     #'acceptOnTab:' false
   807                     #'acceptOnTab:' false
   803      
   828      
   804        #(#FullSpec
   829        #(#FullSpec
   805           #'window:' 
   830           #'window:' 
   806            #(#WindowSpec
   831            #(#WindowSpec
   807               #'name:' 'unnamed canvas'
   832               #'name:' 'unnamed canvas'
   808               #'layout:' #(#LayoutFrame 104 0 316 0 348 0 457 0)
   833               #'layout:' #(#LayoutFrame 238 0 321 0 482 0 462 0)
   809               #'label:' 'unnamed canvas'
   834               #'label:' 'unnamed canvas'
   810               #'min:' #(#Point 10 10)
   835               #'min:' #(#Point 10 10)
   811               #'max:' #(#Point 1280 1024)
   836               #'max:' #(#Point 1280 1024)
   812               #'bounds:' #(#Rectangle 104 316 349 458)
   837               #'bounds:' #(#Rectangle 238 321 483 463)
   813               #'usePreferredExtent:' false
   838               #'usePreferredExtent:' false
   814           )
   839           )
   815           #'component:' 
   840           #'component:' 
   816            #(#SpecCollection
   841            #(#SpecCollection
   817               #'collection:' 
   842               #'collection:' 
   824                     #'resizeForLabel:' true
   849                     #'resizeForLabel:' true
   825                 )
   850                 )
   826                  #(#InputFieldSpec
   851                  #(#InputFieldSpec
   827                     #'name:' 'retrieverField'
   852                     #'name:' 'retrieverField'
   828                     #'layout:' #(#LayoutFrame 110 0 15 0 -5 1.0 37 0)
   853                     #'layout:' #(#LayoutFrame 110 0 15 0 -5 1.0 37 0)
   829                     #'activeHelpKey:' #retriever
   854                     #'activeHelpKey:' #imageRetriever
   830                     #'tabable:' true
   855                     #'tabable:' true
   831                     #'model:' #retriever
   856                     #'model:' #retriever
   832                     #'type:' #symbolOrNil
   857                     #'type:' #symbolOrNil
   833                     #'acceptOnReturn:' false
   858                     #'acceptOnReturn:' false
   834                     #'acceptOnTab:' false
   859                     #'acceptOnTab:' false
   841                     #'resizeForLabel:' true
   866                     #'resizeForLabel:' true
   842                 )
   867                 )
   843                  #(#InputFieldSpec
   868                  #(#InputFieldSpec
   844                     #'name:' 'iconField'
   869                     #'name:' 'iconField'
   845                     #'layout:' #(#LayoutFrame 110 0 40 0 -5 1.0 62 0)
   870                     #'layout:' #(#LayoutFrame 110 0 40 0 -5 1.0 62 0)
   846                     #'activeHelpKey:' #icon
   871                     #'activeHelpKey:' #imageSelector
   847                     #'tabable:' true
   872                     #'tabable:' true
   848                     #'model:' #icon
   873                     #'model:' #icon
   849                     #'type:' #symbolOrNil
   874                     #'type:' #symbolOrNil
   850                     #'acceptOnReturn:' false
   875                     #'acceptOnReturn:' false
   851                     #'acceptOnTab:' false
   876                     #'acceptOnTab:' false
   852                 )
   877                 )
   853                  #(#ActionButtonSpec
   878                  #(#ActionButtonSpec
   854                     #'name:' 'imageEditorButton'
   879                     #'name:' 'imageEditorButton'
   855                     #'layout:' #(#LayoutFrame 110 0 66 0 -5 1 90 0)
   880                     #'layout:' #(#LayoutFrame 110 0 66 0 -5 1 90 0)
       
   881                     #'activeHelpKey:' #imageImageEditor
   856                     #'label:' 'Image Editor'
   882                     #'label:' 'Image Editor'
   857                     #'tabable:' true
   883                     #'tabable:' true
   858                     #'model:' #doEditImage
   884                     #'model:' #doEditImage
   859                 )
   885                 )
   860                  #(#CheckBoxSpec
   886                  #(#CheckBoxSpec
   861                     #'name:' 'iconAndLabel'
   887                     #'name:' 'iconAndLabel'
   862                     #'layout:' #(#LayoutOrigin 20 0 104 0)
   888                     #'layout:' #(#LayoutOrigin 20 0 104 0)
   863                     #'activeHelpKey:' #iconAndLabel
   889                     #'activeHelpKey:' #imageImageAndLabel
   864                     #'tabable:' true
   890                     #'tabable:' true
   865                     #'model:' #iconAndLabel
   891                     #'model:' #iconAndLabel
   866                     #'label:' 'Image & Label'
   892                     #'label:' 'Image & Label'
   867                 )
   893                 )
   868               )
   894               )
   983        #(#Menu
  1009        #(#Menu
   984           
  1010           
   985            #(
  1011            #(
   986              #(#MenuItem
  1012              #(#MenuItem
   987                 #'label:' 'About'
  1013                 #'label:' 'About'
       
  1014                 #'activeHelpKey:' #about
   988                 #'accessCharacterPosition:' 1
  1015                 #'accessCharacterPosition:' 1
   989                 #'labelImage:' #(#ResourceRetriever nil #menuIcon)
  1016                 #'labelImage:' #(#ResourceRetriever nil #menuIcon)
   990                 #'submenuChannel:' #menuAbout
  1017                 #'submenuChannel:' #menuAbout
   991             )
  1018             )
   992              #(#MenuItem
  1019              #(#MenuItem
   993                 #'label:' 'File'
  1020                 #'label:' 'File'
   994                 #'translateLabel:' true
  1021                 #'translateLabel:' true
   995                 #'value:' #file
  1022                 #'value:' #file
       
  1023                 #'activeHelpKey:' #file
   996                 #'submenu:' 
  1024                 #'submenu:' 
   997                  #(#Menu
  1025                  #(#Menu
   998                     
  1026                     
   999                      #(
  1027                      #(
  1000                        #(#MenuItem
  1028                        #(#MenuItem
  1024                           #'label:' '-'
  1052                           #'label:' '-'
  1025                       )
  1053                       )
  1026                        #(#MenuItem
  1054                        #(#MenuItem
  1027                           #'label:' 'Pick A Menu'
  1055                           #'label:' 'Pick A Menu'
  1028                           #'value:' #doPickAMenu
  1056                           #'value:' #doPickAMenu
       
  1057                           #'activeHelpKey:' #filePickAMenu
  1029                           #'enabled:' #isStandAlone
  1058                           #'enabled:' #isStandAlone
  1030                       )
  1059                       )
  1031                        #(#MenuItem
  1060                        #(#MenuItem
  1032                           #'label:' 'Define Menu Class...'
  1061                           #'label:' 'Define Menu Class...'
  1033                           #'value:' #doDefineClass
  1062                           #'value:' #doDefineClass
       
  1063                           #'activeHelpKey:' #fileDefineMenuClass
  1034                           #'enabled:' #isStandAlone
  1064                           #'enabled:' #isStandAlone
  1035                       )
  1065                       )
  1036                        #(#MenuItem
  1066                        #(#MenuItem
  1037                           #'label:' 'Browse Menu Class'
  1067                           #'label:' 'Browse Menu Class'
  1038                           #'value:' #doBrowseAppClass
  1068                           #'value:' #doBrowseAppClass
       
  1069                           #'activeHelpKey:' #fileBrowseMenuClass
  1039                       )
  1070                       )
  1040                        #(#MenuItem
  1071                        #(#MenuItem
  1041                           #'label:' '-'
  1072                           #'label:' '-'
  1042                       )
  1073                       )
  1043                        #(#MenuItem
  1074                        #(#MenuItem
  1050                     nil
  1081                     nil
  1051                 )
  1082                 )
  1052             )
  1083             )
  1053              #(#MenuItem
  1084              #(#MenuItem
  1054                 #'label:' 'Edit'
  1085                 #'label:' 'Edit'
       
  1086                 #'activeHelpKey:' #edit
  1055                 #'submenuChannel:' #menuEdit
  1087                 #'submenuChannel:' #menuEdit
  1056             )
  1088             )
  1057              #(#MenuItem
  1089              #(#MenuItem
  1058                 #'label:' 'Add'
  1090                 #'label:' 'Add'
       
  1091                 #'activeHelpKey:' #add
  1059                 #'submenuChannel:' #menuAdd
  1092                 #'submenuChannel:' #menuAdd
  1060             )
  1093             )
  1061              #(#MenuItem
  1094              #(#MenuItem
  1062                 #'label:' 'Test'
  1095                 #'label:' 'Test'
       
  1096                 #'activeHelpKey:' #test
  1063                 #'submenuChannel:' #submenuTest
  1097                 #'submenuChannel:' #submenuTest
  1064             )
  1098             )
  1065              #(#MenuItem
  1099              #(#MenuItem
  1066                 #'label:' 'History'
  1100                 #'label:' 'History'
       
  1101                 #'activeHelpKey:' #history
  1067                 #'submenuChannel:' #menuHistory
  1102                 #'submenuChannel:' #menuHistory
  1068             )
  1103             )
  1069              #(#MenuItem
  1104              #(#MenuItem
  1070                 #'label:' 'Help'
  1105                 #'label:' 'Help'
  1071                 #'startGroup:' #right
  1106                 #'startGroup:' #right
       
  1107                 #'activeHelpKey:' #help
  1072                 #'submenuChannel:' #menuHelp
  1108                 #'submenuChannel:' #menuHelp
  1073             )
  1109             )
  1074           ) nil
  1110           ) nil
  1075           nil
  1111           nil
  1076       )
  1112       )
  1110                 #'label:' '-'
  1146                 #'label:' '-'
  1111             )
  1147             )
  1112              #(#MenuItem
  1148              #(#MenuItem
  1113                 #'label:' 'Submenu'
  1149                 #'label:' 'Submenu'
  1114                 #'value:' #doCreateMenu
  1150                 #'value:' #doCreateMenu
  1115                 #'activeHelpKey:' #addSubMenuLink
  1151                 #'activeHelpKey:' #addSubMenu
  1116                 #'labelImage:' #(#ResourceRetriever #MenuEditor #submenuImage 'Submenu')
  1152                 #'labelImage:' #(#ResourceRetriever #MenuEditor #submenuImage 'Submenu')
  1117             )
  1153             )
  1118              #(#MenuItem
  1154              #(#MenuItem
  1119                 #'label:' 'Submenu Link'
  1155                 #'label:' 'Submenu Link'
  1120                 #'value:' #doCreateLink
  1156                 #'value:' #doCreateLink
       
  1157                 #'activeHelpKey:' #addSubMenuLink
  1121                 #'labelImage:' #(#ResourceRetriever #MenuEditor #linkSubmenuImage 'Submenu Link')
  1158                 #'labelImage:' #(#ResourceRetriever #MenuEditor #linkSubmenuImage 'Submenu Link')
  1122             )
  1159             )
  1123           ) nil
  1160           ) nil
  1124           nil
  1161           nil
  1125       )
  1162       )