# HG changeset patch # User tz # Date 884966450 -3600 # Node ID 7f21bc19cd51e41dc11e1b5cb876ed991c219d0e # Parent 771f513ad4515062789006c763a2facc8cdc78ee supports calling submenus with arguments diff -r 771f513ad451 -r 7f21bc19cd51 MenuEditor.st --- a/MenuEditor.st Fri Jan 16 16:33:43 1998 +0100 +++ b/MenuEditor.st Fri Jan 16 17:00:50 1998 +0100 @@ -808,11 +808,11 @@ #'window:' #(#WindowSpec #'name:' 'unnamed canvas' - #'layout:' #(#LayoutFrame 228 0 263 0 494 0 581 0) + #'layout:' #(#LayoutFrame 157 0 230 0 423 0 548 0) #'label:' 'unnamed canvas' #'min:' #(#Point 10 10) #'max:' #(#Point 1160 870) - #'bounds:' #(#Rectangle 228 263 495 582) + #'bounds:' #(#Rectangle 157 230 424 549) #'usePreferredExtent:' false ) #'component:' @@ -828,7 +828,7 @@ ) #(#InputFieldSpec #'name:' 'nameKeyField' - #'layout:' #(#LayoutFrame 110 0 15 0 0 1.0 37 0) + #'layout:' #(#LayoutFrame 110 0 15 0 -5 1.0 37 0) #'activeHelpKey:' #nameKey #'tabable:' true #'model:' #nameKey @@ -845,7 +845,7 @@ ) #(#InputFieldSpec #'name:' 'labelField' - #'layout:' #(#LayoutFrame 110 0 40 0 0 1.0 62 0) + #'layout:' #(#LayoutFrame 110 0 40 0 -5 1.0 62 0) #'activeHelpKey:' #label #'tabable:' true #'model:' #label @@ -861,7 +861,7 @@ ) #(#InputFieldSpec #'name:' 'valueField' - #'layout:' #(#LayoutFrame 110 0 79 0 0 1.0 101 0) + #'layout:' #(#LayoutFrame 110 0 79 0 -5 1.0 101 0) #'activeHelpKey:' #value #'tabable:' true #'model:' #value @@ -878,7 +878,7 @@ ) #(#InputFieldSpec #'name:' 'argumentField' - #'layout:' #(#LayoutFrame 110 0 104 0 0 1.0 126 0) + #'layout:' #(#LayoutFrame 110 0 104 0 -5 1.0 126 0) #'activeHelpKey:' #argument #'tabable:' true #'model:' #argument @@ -895,7 +895,7 @@ ) #(#InputFieldSpec #'name:' 'indicationField' - #'layout:' #(#LayoutFrame 110 0 144 0 0 1.0 166 0) + #'layout:' #(#LayoutFrame 110 0 144 0 -5 1.0 166 0) #'activeHelpKey:' #indication #'tabable:' true #'model:' #indication @@ -941,11 +941,11 @@ #'window:' #(#WindowSpec #'name:' 'unnamed canvas' - #'layout:' #(#LayoutFrame 184 0 271 0 450 0 589 0) + #'layout:' #(#LayoutFrame 107 0 276 0 373 0 594 0) #'label:' 'unnamed canvas' #'min:' #(#Point 10 10) #'max:' #(#Point 1280 1024) - #'bounds:' #(#Rectangle 184 271 451 590) + #'bounds:' #(#Rectangle 107 276 374 595) #'usePreferredExtent:' false ) #'component:' @@ -962,7 +962,7 @@ ) #(#InputFieldSpec #'name:' 'nameKeyField' - #'layout:' #(#LayoutFrame 110 0 15 0 0 1.0 37 0) + #'layout:' #(#LayoutFrame 110 0 15 0 -5 1.0 37 0) #'activeHelpKey:' #nameKey #'tabable:' true #'model:' #nameKey @@ -978,7 +978,7 @@ ) #(#InputFieldSpec #'name:' 'labelField' - #'layout:' #(#LayoutFrame 110 0 40 0 0 1.0 62 0) + #'layout:' #(#LayoutFrame 110 0 40 0 -5 1.0 62 0) #'activeHelpKey:' #label #'tabable:' true #'model:' #label @@ -987,7 +987,7 @@ ) #(#InputFieldSpec #'name:' 'menuField' - #'layout:' #(#LayoutFrame 110 0 65 0 0 1.0 87 0) + #'layout:' #(#LayoutFrame 110 0 65 0 -5 1.0 87 0) #'activeHelpKey:' #submenuChannel #'tabable:' true #'model:' #submenuChannel @@ -1003,11 +1003,27 @@ ) #(#CheckBoxSpec #'name:' 'translateLabelCheckBox' - #'layout:' #(#Point 20 110) + #'layout:' #(#Point 20 128) #'activeHelpKey:' #translateLabel #'model:' #translateLabel #'label:' 'Translate Label' ) + #(#InputFieldSpec + #'name:' 'argumentField' + #'layout:' #(#LayoutFrame 110 0 90 0 -5 1.0 112 0) + #'activeHelpKey:' #submenuChannel + #'tabable:' true + #'model:' #submenuArgument + #'type:' #symbolOrNil + #'acceptOnReturn:' false + #'acceptOnTab:' false + ) + #(#LabelSpec + #'name:' 'ArgumentLabel' + #'layout:' #(#AlignmentOrigin 107 0 100 0 1 0.5) + #'label:' 'Argument:' + #'resizeForLabel:' true + ) ) ) ) @@ -1032,11 +1048,11 @@ #'window:' #(#WindowSpec #'name:' 'unnamed canvas' - #'layout:' #(#LayoutFrame 154 0 293 0 420 0 611 0) + #'layout:' #(#LayoutFrame 154 0 234 0 420 0 552 0) #'label:' 'unnamed canvas' #'min:' #(#Point 10 10) #'max:' #(#Point 1280 1024) - #'bounds:' #(#Rectangle 154 293 421 612) + #'bounds:' #(#Rectangle 154 234 421 553) #'usePreferredExtent:' false ) #'component:' @@ -1052,7 +1068,7 @@ ) #(#InputFieldSpec #'name:' 'nameKeyField' - #'layout:' #(#LayoutFrame 110 0 15 0 0 1.0 37 0) + #'layout:' #(#LayoutFrame 110 0 15 0 -5 1.0 37 0) #'activeHelpKey:' #nameKey #'tabable:' true #'model:' #nameKey @@ -1069,7 +1085,7 @@ ) #(#InputFieldSpec #'name:' 'labelField' - #'layout:' #(#LayoutFrame 110 0 40 0 0 1.0 62 0) + #'layout:' #(#LayoutFrame 110 0 40 0 -5 1.0 62 0) #'activeHelpKey:' #label #'tabable:' true #'model:' #label @@ -1107,11 +1123,11 @@ #'window:' #(#WindowSpec #'name:' 'unnamed canvas' - #'layout:' #(#LayoutFrame 279 0 272 0 545 0 590 0) + #'layout:' #(#LayoutFrame 230 0 231 0 496 0 549 0) #'label:' 'unnamed canvas' #'min:' #(#Point 10 10) #'max:' #(#Point 1280 1024) - #'bounds:' #(#Rectangle 279 272 546 591) + #'bounds:' #(#Rectangle 230 231 497 550) #'usePreferredExtent:' false ) #'component:' @@ -1127,7 +1143,7 @@ ) #(#InputFieldSpec #'name:' 'selectorField' - #'layout:' #(#LayoutFrame 110 0 15 0 0 1.0 37 0) + #'layout:' #(#LayoutFrame 110 0 15 0 -5 1.0 37 0) #'activeHelpKey:' #menuSelector #'tabable:' true #'model:' #label @@ -1158,11 +1174,11 @@ #'window:' #(#WindowSpec #'name:' 'unnamed canvas' - #'layout:' #(#LayoutFrame 197 0 172 0 463 0 490 0) + #'layout:' #(#LayoutFrame 322 0 220 0 588 0 538 0) #'label:' 'unnamed canvas' #'min:' #(#Point 10 10) #'max:' #(#Point 1160 870) - #'bounds:' #(#Rectangle 197 172 464 491) + #'bounds:' #(#Rectangle 322 220 589 539) #'usePreferredExtent:' false ) #'component:' @@ -1178,7 +1194,7 @@ ) #(#ComboListSpec #'name:' 'seperatorList' - #'layout:' #(#LayoutFrame 132 0 15 0 0 1.0 37 0) + #'layout:' #(#LayoutFrame 132 0 15 0 -5 1.0 37 0) #'activeHelpKey:' #seperatorList #'model:' #seperatorSelection #'useIndex:' true @@ -1207,11 +1223,11 @@ #'window:' #(#WindowSpec #'name:' 'unnamed canvas' - #'layout:' #(#LayoutFrame 401 0 145 0 659 0 432 0) + #'layout:' #(#LayoutFrame 237 0 249 0 495 0 536 0) #'label:' 'unnamed canvas' #'min:' #(#Point 10 10) #'max:' #(#Point 1280 1024) - #'bounds:' #(#Rectangle 401 145 660 433) + #'bounds:' #(#Rectangle 237 249 496 537) #'usePreferredExtent:' false ) #'component:' @@ -1227,7 +1243,7 @@ ) #(#InputFieldSpec #'name:' 'shortcutKeyField' - #'layout:' #(#LayoutFrame 110 0 15 0 0 1.0 37 0) + #'layout:' #(#LayoutFrame 110 0 15 0 -5 1.0 37 0) #'activeHelpKey:' #shortcutKey #'tabable:' true #'model:' #shortcutKey @@ -1244,7 +1260,7 @@ ) #(#InputFieldSpec #'name:' 'enabledField' - #'layout:' #(#LayoutFrame 110 0 40 0 0 1.0 62 0) + #'layout:' #(#LayoutFrame 110 0 40 0 -5 1.0 62 0) #'activeHelpKey:' #enbled #'tabable:' true #'model:' #enabled @@ -1261,7 +1277,7 @@ ) #(#InputFieldSpec #'name:' 'accessCharField' - #'layout:' #(#LayoutFrame 220 0 79 0 0 1.0 101 0) + #'layout:' #(#LayoutFrame 220 0 79 0 -5 1.0 101 0) #'activeHelpKey:' #accessCharaterPos #'tabable:' true #'model:' #accessCharacterPos @@ -1293,11 +1309,11 @@ #'window:' #(#WindowSpec #'name:' 'unnamed canvas' - #'layout:' #(#LayoutFrame 296 0 296 0 540 0 437 0) + #'layout:' #(#LayoutFrame 172 0 202 0 416 0 343 0) #'label:' 'unnamed canvas' #'min:' #(#Point 10 10) #'max:' #(#Point 1280 1024) - #'bounds:' #(#Rectangle 296 296 541 438) + #'bounds:' #(#Rectangle 172 202 417 344) #'usePreferredExtent:' false ) #'component:' @@ -1313,7 +1329,7 @@ ) #(#InputFieldSpec #'name:' 'retrieverField' - #'layout:' #(#LayoutFrame 110 0 15 0 0 1.0 37 0) + #'layout:' #(#LayoutFrame 110 0 15 0 -5 1.0 37 0) #'activeHelpKey:' #retriever #'tabable:' true #'model:' #retriever @@ -1330,7 +1346,7 @@ ) #(#InputFieldSpec #'name:' 'iconField' - #'layout:' #(#LayoutFrame 110 0 40 0 0 1.0 62 0) + #'layout:' #(#LayoutFrame 110 0 40 0 -5 1.0 62 0) #'activeHelpKey:' #icon #'tabable:' true #'model:' #icon @@ -1348,7 +1364,7 @@ ) #(#ActionButtonSpec #'name:' 'imageEditorButton' - #'layout:' #(#LayoutFrame 110 0 66 0 0 1 90 0) + #'layout:' #(#LayoutFrame 110 0 66 0 -5 1 90 0) #'label:' 'Image Editor' #'model:' #doEditImage ) @@ -1409,24 +1425,6 @@ self helpTool dictionary:aDictionary ! ! -!MenuEditor methodsFor:'accessing menu'! - -menu - "this window spec was automatically generated by the UI Builder" - - ^ self class menu - - -! - -menuEdit - "this window spec was automatically generated by the UI Builder" - - ^ self class menuEdit - - -! ! - !MenuEditor methodsFor:'aspects'! aspectFor:aKey @@ -1813,6 +1811,7 @@ accessCharacterPos argument submenuChannel + submenuArgument enabled value nameKey @@ -2051,11 +2050,11 @@ code := code withCRs. (ReadStream on:code) fileIn. - (cls compiledMethodAt:selector) isNil ifTrue:[ + "(cls compiledMethodAt:selector) isNil ifTrue:[ code := self class generateCodeFor:cls menuSelector:selector. code := code withCRs. (ReadStream on:code) fileIn. - ]. + ]." didInstall := true. isModified := false. @@ -2647,7 +2646,8 @@ self multipleSelectOk:true. self showDirectoryIndicator: true. self showDirectoryIndicatorForRoot: false. - self selectConditionBlock: [:i|self application checkMenuItemModified] + self selectConditionBlock: [:i|self application checkMenuItemModified]. + self validateDoubleClickBlock: [:node| node ~~ listOfNodes first] ! ! !MenuEditor::TreeView methodsFor:'menus'!