# HG changeset patch # User ca # Date 1193147062 -7200 # Node ID 2ee8670e63074d885faf69368b91ce7344b9bb23 # Parent 4b6ba51643917c2d922440f53b613784df0ca746 bugfix 745 - argument not removeable diff -r 4b6ba5164391 -r 2ee8670e6307 MenuEditor.st --- a/MenuEditor.st Fri Oct 19 21:14:13 2007 +0200 +++ b/MenuEditor.st Tue Oct 23 15:44:22 2007 +0200 @@ -3209,205 +3209,205 @@ ^ #(FullSpec - name: detailsEditSpec - window: + name: detailsEditSpec + window: (WindowSpec - label: 'Details Edit' - name: 'Details Edit' - min: (Point 10 10) - bounds: (Rectangle 0 0 407 291) - ) - component: + label: 'Details Edit' + name: 'Details Edit' + min: (Point 10 10) + bounds: (Rectangle 0 0 407 291) + ) + component: (SpecCollection - collection: ( - (LabelSpec - label: 'Accelerator:' - name: 'shortcutKeyLabel' - layout: (AlignmentOrigin 107 0 26 0 1 0.5) - activeHelpKey: detailsAccelerator - translateLabel: true - resizeForLabel: true - adjust: right - ) - (InputFieldSpec - name: 'shortcutKeyField' - layout: (LayoutFrame 110 0 15 0 -5 1.0 37 0) - activeHelpKey: detailsAccelerator - tabable: true - model: shortcutKeyCharacter - group: inputGroup - type: symbolOrNil - immediateAccept: false - acceptOnReturn: true - acceptOnTab: true - acceptChannel: acceptChannel - modifiedChannel: modifiedChannel - acceptOnPointerLeave: false - ) - (LabelSpec - label: 'Enabled:' - name: 'enabledLabel' - layout: (AlignmentOrigin 107 0 51 0 1 0.5) - activeHelpKey: detailsEnabled - translateLabel: true - resizeForLabel: true - adjust: right - ) - (InputFieldSpec - name: 'enabledField' - layout: (LayoutFrame 110 0 40 0 -5 1.0 62 0) - activeHelpKey: detailsEnabled - tabable: true - model: enabled - group: inputGroup - type: symbolOrBooleanOrNil - immediateAccept: false - acceptOnReturn: true - acceptOnTab: true - acceptChannel: acceptChannel - modifiedChannel: modifiedChannel - acceptOnPointerLeave: false - ) - (LabelSpec - label: 'Visibility:' - name: 'visibilityLabel' - layout: (AlignmentOrigin 107 0 76 0 1 0.5) - activeHelpKey: detailsVisibility - translateLabel: true - resizeForLabel: true - adjust: right - ) - (InputFieldSpec - name: 'isVisibleInputField' - layout: (LayoutFrame 110 0 65 0 -5 1.0 87 0) - activeHelpKey: detailsVisibility - tabable: true - model: isVisible - group: inputGroup - type: symbolOrBooleanOrNil - immediateAccept: false - acceptOnReturn: true - acceptOnTab: true - acceptChannel: acceptChannel - modifiedChannel: modifiedChannel - acceptOnPointerLeave: false - ) - (LabelSpec - label: 'Aux Value' - name: 'auxLabel' - layout: (AlignmentOrigin 107 0 101 0 1 0.5) - activeHelpKey: detailsAuxValue - translateLabel: true - resizeForLabel: true - adjust: right - ) - (InputFieldSpec - name: 'auxInputField' - layout: (LayoutFrame 110 0 90 0 -5 1.0 112 0) - activeHelpKey: detailsAuxValue - tabable: true - model: auxValue - group: inputGroup - type: smalltalkObject - immediateAccept: false - acceptOnReturn: true - acceptOnTab: true - acceptChannel: acceptChannel - modifiedChannel: modifiedChannel - acceptOnPointerLeave: false - ) - (LabelSpec - label: 'Start Group:' - name: 'StartGroupLabel' - layout: (AlignmentOrigin 107 0 139 0 1 0.5) - activeHelpKey: detailsStartGroup - translateLabel: true - resizeForLabel: true - adjust: right - ) - (PopUpListSpec - label: 'left' - name: 'StartGroupPopUp' - layout: (LayoutFrame 110 0 128 0 -5 1.0 150 0) - activeHelpKey: detailsStartGroup - tabable: true - model: startGroup - menu: (left right conditionalRight) - ) - (LabelSpec - label: 'Access Character Position:' - name: 'accessCharLabel' - layout: (AlignmentOrigin 217 0 170 0 1 0.5) - translateLabel: true - resizeForLabel: true - adjust: right - ) - (InputFieldSpec - name: 'accessCharField' - layout: (LayoutFrame 220 0 159 0 -5 1.0 181 0) - activeHelpKey: detailsAccessCharaterPosition - tabable: true - model: accessCharacterPosition - group: inputGroup - type: numberOrNil - immediateAccept: false - acceptOnReturn: true - acceptOnTab: true - acceptChannel: acceptChannel - modifiedChannel: modifiedChannel - acceptOnPointerLeave: false - ) - (CheckBoxSpec - label: 'Ignore Accelerator (i.e. Display Only)' - name: 'ignoreShortcutKeysInItem' - layout: (AlignmentOrigin 42 0 204 0 0 0.5) - activeHelpKey: detailsIgnoreAcceleratorKeys - visibilityChannel: hasNoSubmenu - model: ignoreShortcutKeys - translateLabel: true - resizeForLabel: true - ) - (CheckBoxSpec - label: 'Ignore Accelerators in Submenu' - name: 'ignoreShortcutKeys' - layout: (AlignmentOrigin 42 0 204 0 0 0.5) - activeHelpKey: detailsIgnoreAcceleratorKeys - visibilityChannel: hasSubmenu - model: ignoreShortcutKeys - translateLabel: true - resizeForLabel: true - ) - (CheckBoxSpec - label: 'Ignore Mnemonics in Submenu' - name: 'ignoreMnemonicKeys' - layout: (AlignmentOrigin 42 0 232 0 0 0.5) - activeHelpKey: detailsIgnoreMnemonicKeys - visibilityChannel: hasSubmenu - model: ignoreMnemonicKeys - translateLabel: true - resizeForLabel: true - ) - (LabelSpec - label: 'Font:' - name: 'fontLabel' - layout: (AlignmentOrigin 107 0 271 0 1 0.5) - translateLabel: true - resizeForLabel: true - adjust: right - ) - (FontMenuSpec - attributes: - (tabable - true - ) - name: 'fontMenu' - layout: (LayoutFrame 110 0 260 0 -5 1.0 282 0) - activeHelpKey: fontMenu - model: font - ) - ) - - ) + collection: ( + (LabelSpec + label: 'Accelerator:' + name: 'shortcutKeyLabel' + layout: (AlignmentOrigin 107 0 26 0 1 0.5) + activeHelpKey: detailsAccelerator + translateLabel: true + resizeForLabel: true + adjust: right + ) + (InputFieldSpec + name: 'shortcutKeyField' + layout: (LayoutFrame 110 0 15 0 -5 1.0 37 0) + activeHelpKey: detailsAccelerator + tabable: true + model: shortcutKeyCharacter + group: inputGroup + type: symbolOrNil + immediateAccept: false + acceptOnReturn: true + acceptOnTab: true + acceptChannel: acceptChannel + modifiedChannel: modifiedChannel + acceptOnPointerLeave: false + ) + (LabelSpec + label: 'Enabled:' + name: 'enabledLabel' + layout: (AlignmentOrigin 107 0 51 0 1 0.5) + activeHelpKey: detailsEnabled + translateLabel: true + resizeForLabel: true + adjust: right + ) + (InputFieldSpec + name: 'enabledField' + layout: (LayoutFrame 110 0 40 0 -5 1.0 62 0) + activeHelpKey: detailsEnabled + tabable: true + model: enabled + group: inputGroup + type: symbolOrBooleanOrNil + immediateAccept: false + acceptOnReturn: true + acceptOnTab: true + acceptChannel: acceptChannel + modifiedChannel: modifiedChannel + acceptOnPointerLeave: false + ) + (LabelSpec + label: 'Visibility:' + name: 'visibilityLabel' + layout: (AlignmentOrigin 107 0 76 0 1 0.5) + activeHelpKey: detailsVisibility + translateLabel: true + resizeForLabel: true + adjust: right + ) + (InputFieldSpec + name: 'isVisibleInputField' + layout: (LayoutFrame 110 0 65 0 -5 1.0 87 0) + activeHelpKey: detailsVisibility + tabable: true + model: isVisible + group: inputGroup + type: symbolOrBooleanOrNil + immediateAccept: false + acceptOnReturn: true + acceptOnTab: true + acceptChannel: acceptChannel + modifiedChannel: modifiedChannel + acceptOnPointerLeave: false + ) + (LabelSpec + label: 'Aux Value' + name: 'auxLabel' + layout: (AlignmentOrigin 107 0 101 0 1 0.5) + activeHelpKey: detailsAuxValue + translateLabel: true + resizeForLabel: true + adjust: right + ) + (InputFieldSpec + name: 'auxInputField' + layout: (LayoutFrame 110 0 90 0 -5 1.0 112 0) + activeHelpKey: detailsAuxValue + tabable: true + model: auxValue + group: inputGroup + type: smalltalkObjectOrNil + immediateAccept: false + acceptOnReturn: true + acceptOnTab: true + acceptChannel: acceptChannel + modifiedChannel: modifiedChannel + acceptOnPointerLeave: false + ) + (LabelSpec + label: 'Start Group:' + name: 'StartGroupLabel' + layout: (AlignmentOrigin 107 0 139 0 1 0.5) + activeHelpKey: detailsStartGroup + translateLabel: true + resizeForLabel: true + adjust: right + ) + (PopUpListSpec + label: 'left' + name: 'StartGroupPopUp' + layout: (LayoutFrame 110 0 128 0 -5 1.0 150 0) + activeHelpKey: detailsStartGroup + tabable: true + model: startGroup + menu: (left right conditionalRight) + ) + (LabelSpec + label: 'Access Character Position:' + name: 'accessCharLabel' + layout: (AlignmentOrigin 217 0 170 0 1 0.5) + translateLabel: true + resizeForLabel: true + adjust: right + ) + (InputFieldSpec + name: 'accessCharField' + layout: (LayoutFrame 220 0 159 0 -5 1.0 181 0) + activeHelpKey: detailsAccessCharaterPosition + tabable: true + model: accessCharacterPosition + group: inputGroup + type: numberOrNil + immediateAccept: false + acceptOnReturn: true + acceptOnTab: true + acceptChannel: acceptChannel + modifiedChannel: modifiedChannel + acceptOnPointerLeave: false + ) + (CheckBoxSpec + label: 'Ignore Accelerator (i.e. Display Only)' + name: 'ignoreShortcutKeysInItem' + layout: (AlignmentOrigin 42 0 204 0 0 0.5) + activeHelpKey: detailsIgnoreAcceleratorKeys + visibilityChannel: hasNoSubmenu + model: ignoreShortcutKeys + translateLabel: true + resizeForLabel: true + ) + (CheckBoxSpec + label: 'Ignore Accelerators in Submenu' + name: 'ignoreShortcutKeys' + layout: (AlignmentOrigin 42 0 204 0 0 0.5) + activeHelpKey: detailsIgnoreAcceleratorKeys + visibilityChannel: hasSubmenu + model: ignoreShortcutKeys + translateLabel: true + resizeForLabel: true + ) + (CheckBoxSpec + label: 'Ignore Mnemonics in Submenu' + name: 'ignoreMnemonicKeys' + layout: (AlignmentOrigin 42 0 232 0 0 0.5) + activeHelpKey: detailsIgnoreMnemonicKeys + visibilityChannel: hasSubmenu + model: ignoreMnemonicKeys + translateLabel: true + resizeForLabel: true + ) + (LabelSpec + label: 'Font:' + name: 'fontLabel' + layout: (AlignmentOrigin 107 0 271 0 1 0.5) + translateLabel: true + resizeForLabel: true + adjust: right + ) + (FontMenuSpec + attributes: + (tabable + true + ) + name: 'fontMenu' + layout: (LayoutFrame 110 0 260 0 -5 1.0 282 0) + activeHelpKey: fontMenu + model: font + ) + ) + + ) ) "Modified: / 16-10-2006 / 12:48:12 / cg" @@ -3530,8 +3530,9 @@ "read values from aspects " MenuEditor aspects do:[:aKey| - self aspectAt:aKey put:((aspects at:aKey) value) + self aspectAt:aKey put:((aspects at:aKey) value). ]. + self validateMenuItem. self changed. ! @@ -3544,6 +3545,17 @@ (aspects at:#notDelayedMenu) value:(self isDelayedMenu not). (aspects at:#hasSubmenu) value:(self isKindOfMenu or:[self children size ~~ 0]). (aspects at:#hasNoSubmenu) value:(self isKindOfMenu not ). +! + +validateMenuItem + "validate the menuItem for correctness" + + menuItem isNil ifTrue:[^ self]. + + menuItem choice isEmptyOrNil ifTrue:[ + menuItem choice:nil. + menuItem choiceValue:nil. + ]. ! ! !MenuEditor::Item methodsFor:'displaying'! @@ -3751,254 +3763,254 @@ ^ #(FullSpec - name: basicsEditSpec - window: + name: basicsEditSpec + window: (WindowSpec - label: 'basicsEditSpec' - name: 'basicsEditSpec' - min: (Point 10 10) - bounds: (Rectangle 0 0 340 340) - ) - component: + label: 'basicsEditSpec' + name: 'basicsEditSpec' + min: (Point 10 10) + bounds: (Rectangle 0 0 340 340) + ) + component: (SpecCollection - collection: ( - (LabelSpec - label: 'Name Key:' - name: 'nameKeyLabel' - layout: (AlignmentOrigin 107 0 25 0 1 0.5) - activeHelpKey: basicsKey - translateLabel: true - resizeForLabel: true - adjust: right - ) - (InputFieldSpec - name: 'nameKeyField' - layout: (LayoutFrame 110 0 15 0 -5 1.0 37 0) - activeHelpKey: basicsKey - tabable: true - model: nameKey - group: inputGroup - type: symbolOrNil - immediateAccept: false - acceptOnLeave: false - acceptOnReturn: true - acceptOnTab: true - acceptOnLostFocus: false - acceptChannel: acceptChannel - modifiedChannel: modifiedChannel - acceptOnPointerLeave: false - ) - (LabelSpec - label: 'Label:' - name: 'labelLabel' - layout: (AlignmentOrigin 107 0 51 0 1 0.5) - activeHelpKey: basicsLabel - translateLabel: true - resizeForLabel: true - adjust: right - ) - (InputFieldSpec - name: 'labelField' - layout: (LayoutFrame 110 0 40 0 -5 1.0 62 0) - activeHelpKey: basicsLabel - tabable: true - model: rawLabel - group: inputGroup - immediateAccept: false - acceptOnReturn: true - acceptOnTab: true - acceptOnLostFocus: false - acceptChannel: acceptChannel - modifiedChannel: modifiedChannel - acceptOnPointerLeave: false - ) - (LabelSpec - label: 'Action:' - name: 'valueLabel' - layout: (AlignmentOrigin 107 0 82 0 1 0.5) - activeHelpKey: basicsAction - translateLabel: true - resizeForLabel: true - adjust: right - ) - (InputFieldSpec - name: 'valueField' - layout: (LayoutFrame 110 0 71 0 -5 1.0 93 0) - activeHelpKey: basicsAction - tabable: true - model: itemValue - group: inputGroup - type: symbolOrNil - immediateAccept: false - acceptOnLeave: true - acceptOnReturn: true - acceptOnTab: true - acceptOnLostFocus: true - acceptChannel: acceptChannel - modifiedChannel: modifiedChannel - acceptOnPointerLeave: true - ) - (LabelSpec - label: 'Argument:' - name: 'argumentLabel' - layout: (AlignmentOrigin 107 0 107 0 1 0.5) - activeHelpKey: basicsArgument - translateLabel: true - resizeForLabel: true - adjust: right - ) - (InputFieldSpec - name: 'argumentField' - layout: (LayoutFrame 110 0 96 0 -5 1.0 118 0) - activeHelpKey: basicsArgument - tabable: true - model: argument - group: inputGroup - type: smalltalkObject - immediateAccept: false - acceptOnReturn: true - acceptOnTab: true - acceptOnLostFocus: false - acceptChannel: acceptChannel - modifiedChannel: modifiedChannel - acceptOnPointerLeave: false - ) - (LabelSpec - label: 'Indication:' - name: 'indicationLabel' - layout: (AlignmentOrigin 107 0 138 0 1 0.5) - activeHelpKey: basicsIndication - translateLabel: true - resizeForLabel: true - adjust: right - ) - (InputFieldSpec - name: 'indicationField' - layout: (LayoutFrame 110 0 127 0 -5 1.0 149 0) - activeHelpKey: basicsIndication - enableChannel: indicationEnabled - tabable: true - model: indication - group: inputGroup - type: symbolOrNil - immediateAccept: true - acceptOnReturn: false - acceptOnTab: false - acceptOnLostFocus: false - modifiedChannel: modifiedChannel - acceptOnPointerLeave: false - ) - (LabelSpec - label: 'Choice:' - name: 'choiceLabel' - layout: (AlignmentOrigin 107 0 163 0 1 0.5) - activeHelpKey: basicsChoice - translateLabel: true - resizeForLabel: true - adjust: right - ) - (InputFieldSpec - name: 'choiceField' - layout: (LayoutFrame 110 0 152 0 -5 1.0 174 0) - activeHelpKey: basicsChoice - enableChannel: choiceEnabled - tabable: true - model: choice - group: inputGroup - type: symbolOrNil - immediateAccept: true - acceptOnReturn: false - acceptOnTab: false - acceptOnLostFocus: false - modifiedChannel: modifiedChannel - acceptOnPointerLeave: false - ) - (LabelSpec - label: 'Value:' - name: 'choiceValueLabel' - layout: (AlignmentOrigin 107 0 188 0 1 0.5) - activeHelpKey: basicsChoiceValue - translateLabel: true - resizeForLabel: true - adjust: right - ) - (InputFieldSpec - name: 'choiceValueField' - layout: (LayoutFrame 110 0 177 0 -5 1.0 199 0) - activeHelpKey: basicsChoiceValue - enableChannel: choiceValueEnabled - tabable: true - model: choiceValue - group: inputGroup - type: smalltalkObjectOrNil - immediateAccept: false - acceptOnLeave: false - acceptOnReturn: true - acceptOnTab: true - acceptOnLostFocus: false - acceptChannel: acceptChannel - modifiedChannel: modifiedChannel - acceptOnPointerLeave: false - ) - (CheckBoxSpec - label: 'Translate Label' - name: 'translateLabelCheckBox' - layout: (AlignmentOrigin 7 0 213 0 0 0) - activeHelpKey: basicsTranslateLabel - tabable: true - model: translateLabel - translateLabel: true - ) - (CheckBoxSpec - label: 'Is Button' - name: 'isButtonCheckBox' - layout: (AlignmentOrigin 7 0 238 0 0 0) - activeHelpKey: basicsIsButton - tabable: true - model: isButton - translateLabel: true - ) - (CheckBoxSpec - label: 'Hide Menu after Activation' - name: 'hideMenuOnActivated' - layout: (AlignmentOrigin 7 0 263 0 0 0) - activeHelpKey: hideMenuOnActivated - tabable: true - model: hideMenuOnActivated - translateLabel: true - ) - (CheckBoxSpec - label: 'BusyCursor while Active' - name: 'showBusyCursorWhilePerforming' - layout: (AlignmentOrigin 7 0 288 0 0 0) - activeHelpKey: showBusyCursorWhilePerforming - tabable: true - model: showBusyCursorWhilePerforming - translateLabel: true - ) - (CheckBoxSpec - label: 'Trigger On Down' - name: 'triggerOnDown' - layout: (AlignmentOrigin 25 0.5 238 0 0 0) - activeHelpKey: triggerOnDown - enableChannel: hasNoDelayedMenuValue - tabable: true - model: triggerOnDown - translateLabel: true - ) - (CheckBoxSpec - label: 'Send To Originating Widget' - name: 'sendToOriginator' - layout: (AlignmentOrigin 7 0 313 0 0 0) - activeHelpKey: sendToOriginator - enableChannel: hasItemValue - tabable: true - model: sendToOriginator - translateLabel: true - ) - ) - - ) + collection: ( + (LabelSpec + label: 'Name Key:' + name: 'nameKeyLabel' + layout: (AlignmentOrigin 107 0 25 0 1 0.5) + activeHelpKey: basicsKey + translateLabel: true + resizeForLabel: true + adjust: right + ) + (InputFieldSpec + name: 'nameKeyField' + layout: (LayoutFrame 110 0 15 0 -5 1.0 37 0) + activeHelpKey: basicsKey + tabable: true + model: nameKey + group: inputGroup + type: symbolOrNil + immediateAccept: false + acceptOnLeave: false + acceptOnReturn: true + acceptOnTab: true + acceptOnLostFocus: false + acceptChannel: acceptChannel + modifiedChannel: modifiedChannel + acceptOnPointerLeave: false + ) + (LabelSpec + label: 'Label:' + name: 'labelLabel' + layout: (AlignmentOrigin 107 0 51 0 1 0.5) + activeHelpKey: basicsLabel + translateLabel: true + resizeForLabel: true + adjust: right + ) + (InputFieldSpec + name: 'labelField' + layout: (LayoutFrame 110 0 40 0 -5 1.0 62 0) + activeHelpKey: basicsLabel + tabable: true + model: rawLabel + group: inputGroup + immediateAccept: false + acceptOnReturn: true + acceptOnTab: true + acceptOnLostFocus: false + acceptChannel: acceptChannel + modifiedChannel: modifiedChannel + acceptOnPointerLeave: false + ) + (LabelSpec + label: 'Action:' + name: 'valueLabel' + layout: (AlignmentOrigin 107 0 82 0 1 0.5) + activeHelpKey: basicsAction + translateLabel: true + resizeForLabel: true + adjust: right + ) + (InputFieldSpec + name: 'valueField' + layout: (LayoutFrame 110 0 71 0 -5 1.0 93 0) + activeHelpKey: basicsAction + tabable: true + model: itemValue + group: inputGroup + type: symbolOrNil + immediateAccept: false + acceptOnLeave: true + acceptOnReturn: true + acceptOnTab: true + acceptOnLostFocus: true + acceptChannel: acceptChannel + modifiedChannel: modifiedChannel + acceptOnPointerLeave: true + ) + (LabelSpec + label: 'Argument:' + name: 'argumentLabel' + layout: (AlignmentOrigin 107 0 107 0 1 0.5) + activeHelpKey: basicsArgument + translateLabel: true + resizeForLabel: true + adjust: right + ) + (InputFieldSpec + name: 'argumentField' + layout: (LayoutFrame 110 0 96 0 -5 1.0 118 0) + activeHelpKey: basicsArgument + tabable: true + model: argument + group: inputGroup + type: smalltalkObjectOrNil + immediateAccept: false + acceptOnReturn: true + acceptOnTab: true + acceptOnLostFocus: false + acceptChannel: acceptChannel + modifiedChannel: modifiedChannel + acceptOnPointerLeave: false + ) + (LabelSpec + label: 'Indication:' + name: 'indicationLabel' + layout: (AlignmentOrigin 107 0 138 0 1 0.5) + activeHelpKey: basicsIndication + translateLabel: true + resizeForLabel: true + adjust: right + ) + (InputFieldSpec + name: 'indicationField' + layout: (LayoutFrame 110 0 127 0 -5 1.0 149 0) + activeHelpKey: basicsIndication + enableChannel: indicationEnabled + tabable: true + model: indication + group: inputGroup + type: symbolOrNil + immediateAccept: true + acceptOnReturn: false + acceptOnTab: false + acceptOnLostFocus: false + modifiedChannel: modifiedChannel + acceptOnPointerLeave: false + ) + (LabelSpec + label: 'Choice:' + name: 'choiceLabel' + layout: (AlignmentOrigin 107 0 163 0 1 0.5) + activeHelpKey: basicsChoice + translateLabel: true + resizeForLabel: true + adjust: right + ) + (InputFieldSpec + name: 'choiceField' + layout: (LayoutFrame 110 0 152 0 -5 1.0 174 0) + activeHelpKey: basicsChoice + enableChannel: choiceEnabled + tabable: true + model: choice + group: inputGroup + type: symbolOrNil + immediateAccept: true + acceptOnReturn: false + acceptOnTab: false + acceptOnLostFocus: false + modifiedChannel: modifiedChannel + acceptOnPointerLeave: false + ) + (LabelSpec + label: 'Value:' + name: 'choiceValueLabel' + layout: (AlignmentOrigin 107 0 188 0 1 0.5) + activeHelpKey: basicsChoiceValue + translateLabel: true + resizeForLabel: true + adjust: right + ) + (InputFieldSpec + name: 'choiceValueField' + layout: (LayoutFrame 110 0 177 0 -5 1.0 199 0) + activeHelpKey: basicsChoiceValue + enableChannel: choiceValueEnabled + tabable: true + model: choiceValue + group: inputGroup + type: smalltalkObjectOrNil + immediateAccept: false + acceptOnLeave: false + acceptOnReturn: true + acceptOnTab: true + acceptOnLostFocus: false + acceptChannel: acceptChannel + modifiedChannel: modifiedChannel + acceptOnPointerLeave: false + ) + (CheckBoxSpec + label: 'Translate Label' + name: 'translateLabelCheckBox' + layout: (AlignmentOrigin 7 0 213 0 0 0) + activeHelpKey: basicsTranslateLabel + tabable: true + model: translateLabel + translateLabel: true + ) + (CheckBoxSpec + label: 'Is Button' + name: 'isButtonCheckBox' + layout: (AlignmentOrigin 7 0 238 0 0 0) + activeHelpKey: basicsIsButton + tabable: true + model: isButton + translateLabel: true + ) + (CheckBoxSpec + label: 'Hide Menu after Activation' + name: 'hideMenuOnActivated' + layout: (AlignmentOrigin 7 0 263 0 0 0) + activeHelpKey: hideMenuOnActivated + tabable: true + model: hideMenuOnActivated + translateLabel: true + ) + (CheckBoxSpec + label: 'BusyCursor while Active' + name: 'showBusyCursorWhilePerforming' + layout: (AlignmentOrigin 7 0 288 0 0 0) + activeHelpKey: showBusyCursorWhilePerforming + tabable: true + model: showBusyCursorWhilePerforming + translateLabel: true + ) + (CheckBoxSpec + label: 'Trigger On Down' + name: 'triggerOnDown' + layout: (AlignmentOrigin 25 0.5 238 0 0 0) + activeHelpKey: triggerOnDown + enableChannel: hasNoDelayedMenuValue + tabable: true + model: triggerOnDown + translateLabel: true + ) + (CheckBoxSpec + label: 'Send To Originating Widget' + name: 'sendToOriginator' + layout: (AlignmentOrigin 7 0 313 0 0 0) + activeHelpKey: sendToOriginator + enableChannel: hasItemValue + tabable: true + model: sendToOriginator + translateLabel: true + ) + ) + + ) ) ! ! @@ -4093,23 +4105,23 @@ "set a specific aspect named aKey to the aValue" aKey == #argument ifTrue:[ - self hasDelayedMenu ifTrue:[ - children first argument:aValue - ]. - menuItem argument:aValue. - ^ self + self hasDelayedMenu ifTrue:[ + children first argument:aValue + ]. + menuItem argument:aValue. + ^ self ]. aKey == #triggerOnDown ifTrue:[ - |triggerOnDown| - - self hasDelayedMenu ifTrue:[ - triggerOnDown := false - ] ifFalse:[ - triggerOnDown := aValue - ]. - menuItem triggerOnDown:triggerOnDown. - ^ self. + |triggerOnDown| + + self hasDelayedMenu ifTrue:[ + triggerOnDown := false + ] ifFalse:[ + triggerOnDown := aValue + ]. + menuItem triggerOnDown:triggerOnDown. + ^ self. ]. super aspectAt:aKey put:aValue. @@ -4195,163 +4207,163 @@ ^ #(FullSpec - name: basicsEditSpec - window: + name: basicsEditSpec + window: (WindowSpec - label: 'basicsEditSpec' - name: 'basicsEditSpec' - min: (Point 10 10) - bounds: (Rectangle 0 0 340 340) - ) - component: + label: 'basicsEditSpec' + name: 'basicsEditSpec' + min: (Point 10 10) + bounds: (Rectangle 0 0 340 340) + ) + component: (SpecCollection - collection: ( - (LabelSpec - label: 'Name Key:' - name: 'nameKeyLabel' - layout: (AlignmentOrigin 107 0 25 0 1 0.5) - activeHelpKey: basicsKey - visibilityChannel: notDelayedMenu - translateLabel: true - resizeForLabel: true - adjust: right - ) - (InputFieldSpec - name: 'nameKeyField' - layout: (LayoutFrame 110 0 15 0 -5 1.0 37 0) - activeHelpKey: basicsKey - visibilityChannel: notDelayedMenu - tabable: true - model: nameKey - group: inputGroup - type: symbolOrNil - immediateAccept: false - acceptOnLeave: false - acceptOnReturn: true - acceptOnTab: true - acceptOnLostFocus: false - acceptChannel: acceptChannel - modifiedChannel: modifiedChannel - acceptOnPointerLeave: false - ) - (LabelSpec - label: 'Label:' - name: 'labelLabel' - layout: (AlignmentOrigin 107 0 51 0 1 0.5) - activeHelpKey: basicsLabel - visibilityChannel: notDelayedMenu - translateLabel: true - resizeForLabel: true - adjust: right - ) - (InputFieldSpec - name: 'labelField' - layout: (LayoutFrame 110 0 40 0 -5 1.0 62 0) - activeHelpKey: basicsLabel - visibilityChannel: notDelayedMenu - tabable: true - model: rawLabel - group: inputGroup - immediateAccept: false - acceptOnReturn: true - acceptOnTab: true - acceptOnLostFocus: false - acceptChannel: acceptChannel - modifiedChannel: modifiedChannel - acceptOnPointerLeave: false - ) - (LabelSpec - label: 'Menu:' - name: 'menuLabel' - layout: (AlignmentOrigin 107 0 90 0 1 0.5) - activeHelpKey: basicsLabel - translateLabel: true - resizeForLabel: true - adjust: right - ) - (InputFieldSpec - name: 'menuField' - layout: (LayoutFrame 110 0 79 0 -5 1.0 101 0) - activeHelpKey: basicsMenu - tabable: true - model: submenuChannel - group: inputGroup - type: symbolOrNil - immediateAccept: false - acceptOnReturn: true - acceptOnTab: true - acceptOnLostFocus: false - acceptChannel: acceptChannel - modifiedChannel: modifiedChannel - acceptOnPointerLeave: false - ) - (LabelSpec - label: 'Argument:' - name: 'argumentLabel' - layout: (AlignmentOrigin 107 0 115 0 1 0.5) - activeHelpKey: basicsLabel - translateLabel: true - resizeForLabel: true - adjust: right - ) - (InputFieldSpec - name: 'argumentField' - layout: (LayoutFrame 110 0 104 0 -5 1.0 126 0) - activeHelpKey: basicsMenuArgument - enableChannel: notDelayedMenu - tabable: true - model: argument - group: inputGroup - type: smalltalkObject - immediateAccept: false - acceptOnReturn: true - acceptOnTab: true - acceptOnLostFocus: false - acceptChannel: acceptChannel - modifiedChannel: modifiedChannel - acceptOnPointerLeave: false - ) - (CheckBoxSpec - label: 'Translate Label' - name: 'translateLabelCheckBox' - layout: (Point 20 213) - activeHelpKey: basicsTranslateLabel - visibilityChannel: notDelayedMenu - tabable: true - model: translateLabel - translateLabel: true - ) - (CheckBoxSpec - label: 'Is Button' - name: 'isButtonCheckBox' - layout: (Point 20 238) - activeHelpKey: basicsIsButton - visibilityChannel: notDelayedMenu - tabable: true - model: isButton - translateLabel: true - ) - (CheckBoxSpec - label: 'Horizontal Layout' - name: 'horizontalLayout' - layout: (Point 20 263) - activeHelpKey: horizontalLayout - tabable: true - model: horizontalLayout - translateLabel: true - ) - (CheckBoxSpec - label: 'Do not Destroy Linked Menu' - name: 'keepLinkedMenu' - layout: (Point 20 288) - activeHelpKey: keepLinkedMenu - tabable: true - model: keepLinkedMenu - translateLabel: true - ) - ) - - ) + collection: ( + (LabelSpec + label: 'Name Key:' + name: 'nameKeyLabel' + layout: (AlignmentOrigin 107 0 25 0 1 0.5) + activeHelpKey: basicsKey + visibilityChannel: notDelayedMenu + translateLabel: true + resizeForLabel: true + adjust: right + ) + (InputFieldSpec + name: 'nameKeyField' + layout: (LayoutFrame 110 0 15 0 -5 1.0 37 0) + activeHelpKey: basicsKey + visibilityChannel: notDelayedMenu + tabable: true + model: nameKey + group: inputGroup + type: symbolOrNil + immediateAccept: false + acceptOnLeave: false + acceptOnReturn: true + acceptOnTab: true + acceptOnLostFocus: false + acceptChannel: acceptChannel + modifiedChannel: modifiedChannel + acceptOnPointerLeave: false + ) + (LabelSpec + label: 'Label:' + name: 'labelLabel' + layout: (AlignmentOrigin 107 0 51 0 1 0.5) + activeHelpKey: basicsLabel + visibilityChannel: notDelayedMenu + translateLabel: true + resizeForLabel: true + adjust: right + ) + (InputFieldSpec + name: 'labelField' + layout: (LayoutFrame 110 0 40 0 -5 1.0 62 0) + activeHelpKey: basicsLabel + visibilityChannel: notDelayedMenu + tabable: true + model: rawLabel + group: inputGroup + immediateAccept: false + acceptOnReturn: true + acceptOnTab: true + acceptOnLostFocus: false + acceptChannel: acceptChannel + modifiedChannel: modifiedChannel + acceptOnPointerLeave: false + ) + (LabelSpec + label: 'Menu:' + name: 'menuLabel' + layout: (AlignmentOrigin 107 0 90 0 1 0.5) + activeHelpKey: basicsLabel + translateLabel: true + resizeForLabel: true + adjust: right + ) + (InputFieldSpec + name: 'menuField' + layout: (LayoutFrame 110 0 79 0 -5 1.0 101 0) + activeHelpKey: basicsMenu + tabable: true + model: submenuChannel + group: inputGroup + type: symbolOrNil + immediateAccept: false + acceptOnReturn: true + acceptOnTab: true + acceptOnLostFocus: false + acceptChannel: acceptChannel + modifiedChannel: modifiedChannel + acceptOnPointerLeave: false + ) + (LabelSpec + label: 'Argument:' + name: 'argumentLabel' + layout: (AlignmentOrigin 107 0 115 0 1 0.5) + activeHelpKey: basicsLabel + translateLabel: true + resizeForLabel: true + adjust: right + ) + (InputFieldSpec + name: 'argumentField' + layout: (LayoutFrame 110 0 104 0 -5 1.0 126 0) + activeHelpKey: basicsMenuArgument + enableChannel: notDelayedMenu + tabable: true + model: argument + group: inputGroup + type: smalltalkObjectOrNil + immediateAccept: false + acceptOnReturn: true + acceptOnTab: true + acceptOnLostFocus: false + acceptChannel: acceptChannel + modifiedChannel: modifiedChannel + acceptOnPointerLeave: false + ) + (CheckBoxSpec + label: 'Translate Label' + name: 'translateLabelCheckBox' + layout: (Point 20 213) + activeHelpKey: basicsTranslateLabel + visibilityChannel: notDelayedMenu + tabable: true + model: translateLabel + translateLabel: true + ) + (CheckBoxSpec + label: 'Is Button' + name: 'isButtonCheckBox' + layout: (Point 20 238) + activeHelpKey: basicsIsButton + visibilityChannel: notDelayedMenu + tabable: true + model: isButton + translateLabel: true + ) + (CheckBoxSpec + label: 'Horizontal Layout' + name: 'horizontalLayout' + layout: (Point 20 263) + activeHelpKey: horizontalLayout + tabable: true + model: horizontalLayout + translateLabel: true + ) + (CheckBoxSpec + label: 'Do not Destroy Linked Menu' + name: 'keepLinkedMenu' + layout: (Point 20 288) + activeHelpKey: keepLinkedMenu + tabable: true + model: keepLinkedMenu + translateLabel: true + ) + ) + + ) ) ! ! @@ -4475,125 +4487,125 @@ ^ #(FullSpec - name: basicsEditSpec - window: + name: basicsEditSpec + window: (WindowSpec - label: 'basicsEditSpec' - name: 'basicsEditSpec' - min: (Point 10 10) - bounds: (Rectangle 0 0 344 146) - ) - component: + label: 'basicsEditSpec' + name: 'basicsEditSpec' + min: (Point 10 10) + bounds: (Rectangle 0 0 344 146) + ) + component: (SpecCollection - collection: ( - (LabelSpec - label: 'Name Key:' - name: 'nameKeyLabel' - layout: (AlignmentOrigin 107 0 25 0 1 0.5) - activeHelpKey: basicsKey - visibilityChannel: notDelayedMenu - translateLabel: true - resizeForLabel: true - adjust: right - ) - (InputFieldSpec - name: 'nameKeyField' - layout: (LayoutFrame 110 0 15 0 -5 1.0 37 0) - activeHelpKey: basicsKey - visibilityChannel: notDelayedMenu - tabable: true - model: nameKey - group: inputGroup - type: symbolOrNil - immediateAccept: false - acceptOnLeave: false - acceptOnReturn: true - acceptOnTab: true - acceptOnLostFocus: false - acceptChannel: acceptChannel - modifiedChannel: modifiedChannel - acceptOnPointerLeave: false - ) - (LabelSpec - label: 'Label:' - name: 'labelLabel' - layout: (AlignmentOrigin 107 0 51 0 1 0.5) - activeHelpKey: basicsLabel - visibilityChannel: notDelayedMenu - translateLabel: true - resizeForLabel: true - adjust: right - ) - (InputFieldSpec - name: 'labelField' - layout: (LayoutFrame 110 0 40 0 -5 1.0 62 0) - activeHelpKey: basicsLabel - visibilityChannel: notDelayedMenu - tabable: true - model: rawLabel - group: inputGroup - immediateAccept: false - acceptOnReturn: true - acceptOnTab: true - acceptOnLostFocus: false - acceptChannel: acceptChannel - modifiedChannel: modifiedChannel - acceptOnPointerLeave: false - ) - (LabelSpec - label: 'Menu:' - name: 'menuLabel' - layout: (AlignmentOrigin 107 0 90 0 1 0.5) - activeHelpKey: basicsLabel - translateLabel: true - resizeForLabel: true - adjust: right - ) - (InputFieldSpec - name: 'menuField' - layout: (LayoutFrame 110 0 79 0 -5 1.0 101 0) - activeHelpKey: basicsMenu - tabable: true - model: submenuChannel - group: inputGroup - type: symbolOrNil - immediateAccept: false - acceptOnReturn: true - acceptOnTab: true - acceptOnLostFocus: false - acceptChannel: acceptChannel - modifiedChannel: modifiedChannel - acceptOnPointerLeave: false - ) - (LabelSpec - label: 'Argument:' - name: 'argumentLabel' - layout: (AlignmentOrigin 107 0 115 0 1 0.5) - activeHelpKey: basicsLabel - translateLabel: true - resizeForLabel: true - adjust: right - ) - (InputFieldSpec - name: 'argumentField' - layout: (LayoutFrame 110 0 104 0 -5 1.0 126 0) - activeHelpKey: basicsMenuArgument - enableChannel: notDelayedMenu - tabable: true - model: argument - group: inputGroup - type: smalltalkObject - immediateAccept: false - acceptOnReturn: true - acceptOnTab: true - acceptOnLostFocus: false - acceptChannel: acceptChannel - modifiedChannel: modifiedChannel - acceptOnPointerLeave: false - ) - ) - - ) + collection: ( + (LabelSpec + label: 'Name Key:' + name: 'nameKeyLabel' + layout: (AlignmentOrigin 107 0 25 0 1 0.5) + activeHelpKey: basicsKey + visibilityChannel: notDelayedMenu + translateLabel: true + resizeForLabel: true + adjust: right + ) + (InputFieldSpec + name: 'nameKeyField' + layout: (LayoutFrame 110 0 15 0 -5 1.0 37 0) + activeHelpKey: basicsKey + visibilityChannel: notDelayedMenu + tabable: true + model: nameKey + group: inputGroup + type: symbolOrNil + immediateAccept: false + acceptOnLeave: false + acceptOnReturn: true + acceptOnTab: true + acceptOnLostFocus: false + acceptChannel: acceptChannel + modifiedChannel: modifiedChannel + acceptOnPointerLeave: false + ) + (LabelSpec + label: 'Label:' + name: 'labelLabel' + layout: (AlignmentOrigin 107 0 51 0 1 0.5) + activeHelpKey: basicsLabel + visibilityChannel: notDelayedMenu + translateLabel: true + resizeForLabel: true + adjust: right + ) + (InputFieldSpec + name: 'labelField' + layout: (LayoutFrame 110 0 40 0 -5 1.0 62 0) + activeHelpKey: basicsLabel + visibilityChannel: notDelayedMenu + tabable: true + model: rawLabel + group: inputGroup + immediateAccept: false + acceptOnReturn: true + acceptOnTab: true + acceptOnLostFocus: false + acceptChannel: acceptChannel + modifiedChannel: modifiedChannel + acceptOnPointerLeave: false + ) + (LabelSpec + label: 'Menu:' + name: 'menuLabel' + layout: (AlignmentOrigin 107 0 90 0 1 0.5) + activeHelpKey: basicsLabel + translateLabel: true + resizeForLabel: true + adjust: right + ) + (InputFieldSpec + name: 'menuField' + layout: (LayoutFrame 110 0 79 0 -5 1.0 101 0) + activeHelpKey: basicsMenu + tabable: true + model: submenuChannel + group: inputGroup + type: symbolOrNil + immediateAccept: false + acceptOnReturn: true + acceptOnTab: true + acceptOnLostFocus: false + acceptChannel: acceptChannel + modifiedChannel: modifiedChannel + acceptOnPointerLeave: false + ) + (LabelSpec + label: 'Argument:' + name: 'argumentLabel' + layout: (AlignmentOrigin 107 0 115 0 1 0.5) + activeHelpKey: basicsLabel + translateLabel: true + resizeForLabel: true + adjust: right + ) + (InputFieldSpec + name: 'argumentField' + layout: (LayoutFrame 110 0 104 0 -5 1.0 126 0) + activeHelpKey: basicsMenuArgument + enableChannel: notDelayedMenu + tabable: true + model: argument + group: inputGroup + type: smalltalkObjectOrNil + immediateAccept: false + acceptOnReturn: true + acceptOnTab: true + acceptOnLostFocus: false + acceptChannel: acceptChannel + modifiedChannel: modifiedChannel + acceptOnPointerLeave: false + ) + ) + + ) ) ! !