| // Copyright 2022 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef UI_BASE_COCOA_NSMENU_ADDITIONS_H_ |
| #define UI_BASE_COCOA_NSMENU_ADDITIONS_H_ |
| |
| #import <Cocoa/Cocoa.h> |
| |
| @interface NSMenu (ChromeAdditions) |
| |
| // Sets a block that cr_menuItemForKeyEquivalentEvent: calls before |
| // beginning its search for a matching menu item. Useful for code |
| // outside of /content to arrange for code execution (to perform custom |
| // menu item updates, for example) before the search begins. |
| // |
| // This method does not support multiple pre-search blocks. It will |
| // CHECK() if called after a block has already been set. |
| + (void)cr_setMenuItemForKeyEquivalentEventPreSearchBlock:(void (^)(void))block; |
| |
| // Searches the menu and its submenus for the item with the keyboard |
| // equivalent matching `event`. Returns nil if no corresponding |
| // menu item exists. |
| - (NSMenuItem*)cr_menuItemForKeyEquivalentEvent:(NSEvent*)event; |
| |
| // Locates the menu item corresponding to `chromeCommand` and flashes |
| // its owning menu title in the menu bar (without executing the command). |
| // Also causes VoiceOver to speak the menu item. Returns NO if the |
| // command wasn't found in the menus. |
| + (BOOL)flashMenuForChromeCommand:(int)chromeCommand; |
| |
| @end |
| |
| #endif // UI_BASE_COCOA_NSMENU_ADDITIONS_H_ |