Commit 927f0a94 authored by Tom Anderson's avatar Tom Anderson Committed by Commit Bot

Expose ui::Accelerator::KeyCodeTo{Name,MacSymbol} for clients to use

Wanted for this CL:
https://chromium-review.googlesource.com/c/chromium/src/+/1654489/

BUG=419673
R=thestig

Change-Id: I7a2ecd8e443929ff38b08c16558eb210ca2308d0
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1666528
Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
Auto-Submit: Thomas Anderson <thomasanderson@chromium.org>
Reviewed-by: default avatarScott Violet <sky@chromium.org>
Cr-Commit-Position: refs/heads/master@{#670336}
parent fc035627
...@@ -145,9 +145,9 @@ base::string16 Accelerator::GetShortcutText() const { ...@@ -145,9 +145,9 @@ base::string16 Accelerator::GetShortcutText() const {
base::string16 shortcut; base::string16 shortcut;
#if defined(OS_MACOSX) #if defined(OS_MACOSX)
shortcut = KeyCodeToMacSymbol(key_code_); shortcut = KeyCodeToMacSymbol();
#else #else
shortcut = KeyCodeToName(key_code_); shortcut = KeyCodeToName();
#endif #endif
if (shortcut.empty()) { if (shortcut.empty()) {
...@@ -227,54 +227,9 @@ base::string16 Accelerator::GetShortcutText() const { ...@@ -227,54 +227,9 @@ base::string16 Accelerator::GetShortcutText() const {
return shortcut; return shortcut;
} }
base::string16 Accelerator::ApplyLongFormModifiers(
base::string16 shortcut) const {
if (IsShiftDown())
shortcut = ApplyModifierToAcceleratorString(shortcut, IDS_APP_SHIFT_KEY);
// Note that we use 'else-if' in order to avoid using Ctrl+Alt as a shortcut.
// See http://blogs.msdn.com/oldnewthing/archive/2004/03/29/101121.aspx for
// more information.
if (IsCtrlDown())
shortcut = ApplyModifierToAcceleratorString(shortcut, IDS_APP_CTRL_KEY);
else if (IsAltDown())
shortcut = ApplyModifierToAcceleratorString(shortcut, IDS_APP_ALT_KEY);
if (IsCmdDown()) {
#if defined(OS_MACOSX)
shortcut = ApplyModifierToAcceleratorString(shortcut, IDS_APP_COMMAND_KEY);
#elif defined(OS_CHROMEOS)
shortcut = ApplyModifierToAcceleratorString(shortcut, IDS_APP_SEARCH_KEY);
#elif defined(OS_WIN)
shortcut = ApplyModifierToAcceleratorString(shortcut, IDS_APP_WINDOWS_KEY);
#else
NOTREACHED();
#endif
}
return shortcut;
}
base::string16 Accelerator::ApplyShortFormModifiers(
base::string16 shortcut) const {
const base::char16 kCommandSymbol[] = {0x2318, 0};
const base::char16 kCtrlSymbol[] = {0x2303, 0};
const base::char16 kShiftSymbol[] = {0x21e7, 0};
const base::char16 kOptionSymbol[] = {0x2325, 0};
const base::char16 kNoSymbol[] = {0};
std::vector<base::string16> parts;
parts.push_back(base::string16(IsCtrlDown() ? kCtrlSymbol : kNoSymbol));
parts.push_back(base::string16(IsAltDown() ? kOptionSymbol : kNoSymbol));
parts.push_back(base::string16(IsShiftDown() ? kShiftSymbol : kNoSymbol));
parts.push_back(base::string16(IsCmdDown() ? kCommandSymbol : kNoSymbol));
parts.push_back(shortcut);
return base::StrCat(parts);
}
#if defined(OS_MACOSX) #if defined(OS_MACOSX)
base::string16 Accelerator::KeyCodeToMacSymbol(KeyboardCode key_code) const { base::string16 Accelerator::KeyCodeToMacSymbol() const {
switch (key_code) { switch (key_code_) {
case VKEY_CAPITAL: case VKEY_CAPITAL:
return base::string16({0x21ea, 0}); return base::string16({0x21ea, 0});
case VKEY_RETURN: case VKEY_RETURN:
...@@ -305,12 +260,12 @@ base::string16 Accelerator::KeyCodeToMacSymbol(KeyboardCode key_code) const { ...@@ -305,12 +260,12 @@ base::string16 Accelerator::KeyCodeToMacSymbol(KeyboardCode key_code) const {
// "Space" and some other keys are written out; fall back to KeyCodeToName() // "Space" and some other keys are written out; fall back to KeyCodeToName()
// for those (and any other unhandled keys). // for those (and any other unhandled keys).
default: default:
return KeyCodeToName(key_code); return KeyCodeToName();
} }
} }
#endif // OS_MACOSX #endif // OS_MACOSX
base::string16 Accelerator::KeyCodeToName(KeyboardCode key_code) const { base::string16 Accelerator::KeyCodeToName() const {
int string_id = 0; int string_id = 0;
switch (key_code_) { switch (key_code_) {
case VKEY_TAB: case VKEY_TAB:
...@@ -391,4 +346,49 @@ base::string16 Accelerator::KeyCodeToName(KeyboardCode key_code) const { ...@@ -391,4 +346,49 @@ base::string16 Accelerator::KeyCodeToName(KeyboardCode key_code) const {
return string_id ? l10n_util::GetStringUTF16(string_id) : base::string16(); return string_id ? l10n_util::GetStringUTF16(string_id) : base::string16();
} }
base::string16 Accelerator::ApplyLongFormModifiers(
base::string16 shortcut) const {
if (IsShiftDown())
shortcut = ApplyModifierToAcceleratorString(shortcut, IDS_APP_SHIFT_KEY);
// Note that we use 'else-if' in order to avoid using Ctrl+Alt as a shortcut.
// See http://blogs.msdn.com/oldnewthing/archive/2004/03/29/101121.aspx for
// more information.
if (IsCtrlDown())
shortcut = ApplyModifierToAcceleratorString(shortcut, IDS_APP_CTRL_KEY);
else if (IsAltDown())
shortcut = ApplyModifierToAcceleratorString(shortcut, IDS_APP_ALT_KEY);
if (IsCmdDown()) {
#if defined(OS_MACOSX)
shortcut = ApplyModifierToAcceleratorString(shortcut, IDS_APP_COMMAND_KEY);
#elif defined(OS_CHROMEOS)
shortcut = ApplyModifierToAcceleratorString(shortcut, IDS_APP_SEARCH_KEY);
#elif defined(OS_WIN)
shortcut = ApplyModifierToAcceleratorString(shortcut, IDS_APP_WINDOWS_KEY);
#else
NOTREACHED();
#endif
}
return shortcut;
}
base::string16 Accelerator::ApplyShortFormModifiers(
base::string16 shortcut) const {
const base::char16 kCommandSymbol[] = {0x2318, 0};
const base::char16 kCtrlSymbol[] = {0x2303, 0};
const base::char16 kShiftSymbol[] = {0x21e7, 0};
const base::char16 kOptionSymbol[] = {0x2325, 0};
const base::char16 kNoSymbol[] = {0};
std::vector<base::string16> parts;
parts.push_back(base::string16(IsCtrlDown() ? kCtrlSymbol : kNoSymbol));
parts.push_back(base::string16(IsAltDown() ? kOptionSymbol : kNoSymbol));
parts.push_back(base::string16(IsShiftDown() ? kShiftSymbol : kNoSymbol));
parts.push_back(base::string16(IsCmdDown() ? kCommandSymbol : kNoSymbol));
parts.push_back(shortcut);
return base::StrCat(parts);
}
} // namespace ui } // namespace ui
...@@ -89,6 +89,11 @@ class UI_BASE_EXPORT Accelerator { ...@@ -89,6 +89,11 @@ class UI_BASE_EXPORT Accelerator {
// Returns a string with the localized shortcut if any. // Returns a string with the localized shortcut if any.
base::string16 GetShortcutText() const; base::string16 GetShortcutText() const;
#if defined(OS_MACOSX)
base::string16 KeyCodeToMacSymbol() const;
#endif
base::string16 KeyCodeToName() const;
void set_interrupted_by_mouse_event(bool interrupted_by_mouse_event) { void set_interrupted_by_mouse_event(bool interrupted_by_mouse_event) {
interrupted_by_mouse_event_ = interrupted_by_mouse_event; interrupted_by_mouse_event_ = interrupted_by_mouse_event;
} }
...@@ -101,11 +106,6 @@ class UI_BASE_EXPORT Accelerator { ...@@ -101,11 +106,6 @@ class UI_BASE_EXPORT Accelerator {
base::string16 ApplyLongFormModifiers(base::string16 shortcut) const; base::string16 ApplyLongFormModifiers(base::string16 shortcut) const;
base::string16 ApplyShortFormModifiers(base::string16 shortcut) const; base::string16 ApplyShortFormModifiers(base::string16 shortcut) const;
#if defined(OS_MACOSX)
base::string16 KeyCodeToMacSymbol(KeyboardCode key_code) const;
#endif
base::string16 KeyCodeToName(KeyboardCode key_code) const;
// The keycode (VK_...). // The keycode (VK_...).
KeyboardCode key_code_; KeyboardCode key_code_;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment