MenuEditor.st
changeset 1778 32befdc61270
parent 1775 695f10f213d1
child 1780 5f831e1fc839
--- a/MenuEditor.st	Mon Jan 12 09:31:50 2004 +0100
+++ b/MenuEditor.st	Tue Jan 13 17:30:14 2004 +0100
@@ -215,6 +215,8 @@
         activeHelpKey
         resourceRetriever
         sendToOriginator
+        ignoreMnemonicKeys
+        ignoreShortcutKeys
      )
 ! !
 
@@ -320,6 +322,12 @@
 #detailsAccelerator
 'Accelerator key to select the menu item from the keyboard (Cmdx or Ctrlx).'
 
+#detailsIgnoreAcceleratorKeys
+'Ignore accelerator keys in submenu(s).'
+
+#detailsIgnoreMnemonicKeys
+'Ignore mnemonic keys (access characters) in submenu(s).'
+
 #detailsAccessCharaterPosition
 'Index of the access character position of the textual label (obsolete, VW compatibility).'
 
@@ -2908,7 +2916,7 @@
           label: 'Details Edit'
           name: 'Details Edit'
           min: (Point 10 10)
-          bounds: (Rectangle 14 46 274 291)
+          bounds: (Rectangle 12 22 419 313)
         )
         component: 
        (SpecCollection
@@ -3030,7 +3038,6 @@
               label: 'Access Character Position:'
               name: 'accessCharLabel'
               layout: (AlignmentOrigin 217 0 170 0 1 0.5)
-              activeHelpKey: detailsAccessCharaterPosition
               resizeForLabel: true
               adjust: right
             )
@@ -3049,10 +3056,30 @@
               modifiedChannel: modifiedChannel
               acceptOnPointerLeave: false
             )
+           (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 75 0 219 0 1 0.5)
+              layout: (AlignmentOrigin 75 0 271 0 1 0.5)
               resizeForLabel: true
               adjust: right
             )
@@ -3062,7 +3089,7 @@
                 true
               )
               name: 'fontMenu'
-              layout: (LayoutFrame 78 0 208 0 -5 1.0 230 0)
+              layout: (LayoutFrame 78 0 260 0 -5 1.0 282 0)
               activeHelpKey: fontMenu
               model: font
             )
@@ -3080,6 +3107,9 @@
     aspects at:#notDelayedMenu ifAbsentPut:[
         true asValue
     ].
+    aspects at:#hasSubmenu ifAbsentPut:[
+        false asValue
+    ].
 ! !
 
 !MenuEditor::Item class methodsFor:'testing'!
@@ -3192,6 +3222,7 @@
         (aspects at:aKey) value:(menuItem perform:aKey)
     ].
     (aspects at:#notDelayedMenu) value:(self isDelayedMenu not).
+    (aspects at:#hasSubmenu)     value:(self isKindOfMenu or:[self children size ~~ 0]).
 ! !
 
 !MenuEditor::Item methodsFor:'displaying'!
@@ -3738,6 +3769,7 @@
         menuItem argument:aValue.
       ^ self
     ].
+
     aKey == #triggerOnDown ifTrue:[
         self hasDelayedMenu ifTrue:[
             menuItem triggerOnDown:false