--- 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
+ )
+ )
+
+ )
)
! !