Browse Source

Add macOS specific speaking roles for MenuItem

Milan Burda 8 years ago
parent
commit
edc1a9614c

+ 2 - 0
atom/browser/ui/cocoa/atom_menu_controller.mm

@@ -35,6 +35,8 @@ Role kRolesMap[] = {
   { @selector(delete:), "delete" },
   { @selector(pasteAndMatchStyle:), "pasteandmatchstyle" },
   { @selector(selectAll:), "selectall" },
+  { @selector(startSpeaking:), "startspeaking" },
+  { @selector(stopSpeaking:), "stopspeaking" },
   { @selector(performMiniaturize:), "minimize" },
   { @selector(performClose:), "close" },
   { @selector(performZoom:), "zoom" },

+ 16 - 0
default_app/main.js

@@ -217,6 +217,22 @@ app.once('ready', () => {
         }
       ]
     })
+    template[1].submenu.push(
+      {
+        type: 'separator'
+      },
+      {
+        label: 'Speech',
+        submenu: [
+          {
+            role: 'startspeaking'
+          },
+          {
+            role: 'stopspeaking'
+          }
+        ]
+      }
+    )
     template[3].submenu = [
       {
         role: 'close'

+ 2 - 0
docs/api/menu-item.md

@@ -63,6 +63,8 @@ On macOS `role` can also have following additional values:
 * `hide` - Map to the `hide` action
 * `hideothers` - Map to the `hideOtherApplications` action
 * `unhide` - Map to the `unhideAllApplications` action
+* `startspeaking` - Map to the `startSpeaking` action
+* `stopspeaking` - Map to the `stopSpeaking` action
 * `front` - Map to the `arrangeInFront` action
 * `zoom` - Map to the `performZoom` action
 * `window` - The submenu is a "Window" menu

+ 17 - 0
docs/api/menu.md

@@ -133,6 +133,23 @@ if (process.platform === 'darwin') {
       }
     ]
   })
+  // Edit menu.
+  template[1].submenu.push(
+    {
+      type: 'separator'
+    },
+    {
+      label: 'Speech',
+      submenu: [
+        {
+          role: 'startspeaking'
+        },
+        {
+          role: 'stopspeaking'
+        }
+      ]
+    }
+  )
   // Window menu.
   template[3].submenu = [
     {

+ 6 - 0
lib/browser/api/menu-item-roles.js

@@ -80,6 +80,12 @@ const roles = {
   services: {
     label: 'Services'
   },
+  startspeaking: {
+    label: 'Start Speaking'
+  },
+  stopspeaking: {
+    label: 'Stop Speaking'
+  },
   togglefullscreen: {
     label: 'Toggle Full Screen',
     accelerator: process.platform === 'darwin' ? 'Control+Command+F' : 'F11',