Get rid of DomKey::Constant<...>::Character/Dead
As mentioned in the comment, this construct can now be replaced with constexpr functions. BUG=b:324930404 TEST=events_unittests Change-Id: I39d36a07dcdd30ef87e02b29580d46fd19ddb959 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5314181 Reviewed-by: Hidehiko Abe <hidehiko@chromium.org> Reviewed-by: Zentaro Kavanagh <zentaro@chromium.org> Commit-Queue: Satoru Takabayashi <satorux@chromium.org> Reviewed-by: Wez <wez@chromium.org> Cr-Commit-Position: refs/heads/main@{#1318412}
This commit is contained in:

committed by
Chromium LUCI CQ

parent
e6e4b9c777
commit
750034dab4
ash
accelerators
events
chrome/browser/ash/events
ui
@ -174,10 +174,10 @@ template <ui::DomCode code,
|
||||
ui::KeyboardCode keycode,
|
||||
char shifted_key = key>
|
||||
using TestCharKey = TestKey<code,
|
||||
ui::DomKey::Constant<key>::Character,
|
||||
ui::DomKey::FromCharacter(key),
|
||||
keycode,
|
||||
ui::EF_NONE,
|
||||
ui::DomKey::Constant<shifted_key>::Character>;
|
||||
ui::DomKey::FromCharacter(shifted_key)>;
|
||||
|
||||
// Modifier keys.
|
||||
using KeyLShift = TestKey<ui::DomCode::SHIFT_LEFT,
|
||||
|
@ -78,40 +78,40 @@ mojom::KeyEvent GetStaticShortcutAction(mojom::StaticShortcutAction action) {
|
||||
case mojom::StaticShortcutAction::kMiddleClick:
|
||||
NOTREACHED_NORETURN();
|
||||
case mojom::StaticShortcutAction::kCopy:
|
||||
key_event = mojom::KeyEvent(
|
||||
ui::VKEY_C, static_cast<int>(ui::DomCode::US_C),
|
||||
static_cast<int>(ui::DomKey::Constant<'c'>::Character),
|
||||
ui::EF_CONTROL_DOWN, /*key_display=*/"");
|
||||
key_event =
|
||||
mojom::KeyEvent(ui::VKEY_C, static_cast<int>(ui::DomCode::US_C),
|
||||
static_cast<int>(ui::DomKey::FromCharacter('c')),
|
||||
ui::EF_CONTROL_DOWN, /*key_display=*/"");
|
||||
break;
|
||||
case mojom::StaticShortcutAction::kPaste:
|
||||
key_event = mojom::KeyEvent(
|
||||
ui::VKEY_V, static_cast<int>(ui::DomCode::US_V),
|
||||
static_cast<int>(ui::DomKey::Constant<'v'>::Character),
|
||||
ui::EF_CONTROL_DOWN, /*key_display=*/"");
|
||||
key_event =
|
||||
mojom::KeyEvent(ui::VKEY_V, static_cast<int>(ui::DomCode::US_V),
|
||||
static_cast<int>(ui::DomKey::FromCharacter('v')),
|
||||
ui::EF_CONTROL_DOWN, /*key_display=*/"");
|
||||
break;
|
||||
case mojom::StaticShortcutAction::kUndo:
|
||||
key_event = mojom::KeyEvent(
|
||||
ui::VKEY_Z, static_cast<int>(ui::DomCode::US_Z),
|
||||
static_cast<int>(ui::DomKey::Constant<'z'>::Character),
|
||||
ui::EF_CONTROL_DOWN, /*key_display=*/"");
|
||||
key_event =
|
||||
mojom::KeyEvent(ui::VKEY_Z, static_cast<int>(ui::DomCode::US_Z),
|
||||
static_cast<int>(ui::DomKey::FromCharacter('z')),
|
||||
ui::EF_CONTROL_DOWN, /*key_display=*/"");
|
||||
break;
|
||||
case mojom::StaticShortcutAction::kRedo:
|
||||
key_event = mojom::KeyEvent(
|
||||
ui::VKEY_Z, static_cast<int>(ui::DomCode::US_Z),
|
||||
static_cast<int>(ui::DomKey::Constant<'z'>::Character),
|
||||
static_cast<int>(ui::DomKey::FromCharacter('z')),
|
||||
ui::EF_CONTROL_DOWN | ui::EF_SHIFT_DOWN, /*key_display=*/"");
|
||||
break;
|
||||
case mojom::StaticShortcutAction::kZoomIn:
|
||||
key_event = mojom::KeyEvent(
|
||||
ui::VKEY_OEM_PLUS, static_cast<int>(ui::DomCode::EQUAL),
|
||||
static_cast<int>(ui::DomKey::Constant<'='>::Character),
|
||||
ui::EF_CONTROL_DOWN, /*key_display=*/"");
|
||||
static_cast<int>(ui::DomKey::FromCharacter('=')), ui::EF_CONTROL_DOWN,
|
||||
/*key_display=*/"");
|
||||
break;
|
||||
case mojom::StaticShortcutAction::kZoomOut:
|
||||
key_event = mojom::KeyEvent(
|
||||
ui::VKEY_OEM_MINUS, static_cast<int>(ui::DomCode::MINUS),
|
||||
static_cast<int>(ui::DomKey::Constant<'-'>::Character),
|
||||
ui::EF_CONTROL_DOWN, /*key_display=*/"");
|
||||
static_cast<int>(ui::DomKey::FromCharacter('-')), ui::EF_CONTROL_DOWN,
|
||||
/*key_display=*/"");
|
||||
break;
|
||||
case mojom::StaticShortcutAction::kPreviousPage:
|
||||
key_event = mojom::KeyEvent(ui::VKEY_BROWSER_BACK,
|
||||
|
@ -185,10 +185,10 @@ template <ui::DomCode code,
|
||||
ui::KeyboardCode keycode,
|
||||
char shifted_key = key>
|
||||
using TestCharKey = TestKey<code,
|
||||
ui::DomKey::Constant<key>::Character,
|
||||
ui::DomKey::FromCharacter(key),
|
||||
keycode,
|
||||
ui::EF_NONE,
|
||||
ui::DomKey::Constant<shifted_key>::Character>;
|
||||
ui::DomKey::FromCharacter(shifted_key)>;
|
||||
|
||||
template <ui::EventFlags changed_button_flag, uint32_t linux_key_code = 0>
|
||||
struct TestButton {
|
||||
@ -993,7 +993,7 @@ TEST_F(PeripheralCustomizationEventRewriterTest,
|
||||
/*name=*/"", mojom::Button::NewVkey(ui::VKEY_0),
|
||||
mojom::RemappingAction::NewKeyEvent(mojom::KeyEvent::New(
|
||||
ui::VKEY_OEM_MINUS, static_cast<int>(ui::DomCode::MINUS),
|
||||
static_cast<int>(ui::DomKey::Constant<'-'>::Character), ui::EF_NONE,
|
||||
static_cast<int>(ui::DomKey::FromCharacter('-')), ui::EF_NONE,
|
||||
/*key_display=*/""))));
|
||||
EXPECT_EQ(KeyMinus::Typed(ui::EF_IS_CUSTOMIZED_FROM_BUTTON),
|
||||
RunRewriter(KeyDigit0::Typed()));
|
||||
@ -1003,7 +1003,7 @@ TEST_F(PeripheralCustomizationEventRewriterTest,
|
||||
layout_engine->SetCustomLookupTableForTesting(de_table);
|
||||
ash::AcceleratorKeycodeLookupCache::Get()->Clear();
|
||||
|
||||
EXPECT_EQ((TestKey<ui::DomCode::MINUS, ui::DomKey::Constant<u'ß'>::Character,
|
||||
EXPECT_EQ((TestKey<ui::DomCode::MINUS, ui::DomKey::FromCharacter(u'ß'),
|
||||
ui::VKEY_OEM_4>::Typed(ui::EF_IS_CUSTOMIZED_FROM_BUTTON)),
|
||||
RunRewriter(KeyDigit0::Typed()));
|
||||
}
|
||||
@ -1015,7 +1015,7 @@ TEST_F(PeripheralCustomizationEventRewriterTest,
|
||||
/*name=*/"", mojom::Button::NewVkey(ui::VKEY_0),
|
||||
mojom::RemappingAction::NewKeyEvent(mojom::KeyEvent::New(
|
||||
ui::VKEY_A, static_cast<int>(ui::DomCode::US_A),
|
||||
static_cast<int>(ui::DomKey::Constant<'a'>::Character), ui::EF_NONE,
|
||||
static_cast<int>(ui::DomKey::FromCharacter('a')), ui::EF_NONE,
|
||||
/*key_display=*/""))));
|
||||
|
||||
EXPECT_EQ(KeyA::Typed(ui::EF_SHIFT_DOWN | ui::EF_IS_CUSTOMIZED_FROM_BUTTON),
|
||||
@ -1030,7 +1030,7 @@ TEST_F(PeripheralCustomizationEventRewriterTest,
|
||||
mojom::Button::NewCustomizableButton(mojom::CustomizableButton::kForward),
|
||||
mojom::RemappingAction::NewKeyEvent(mojom::KeyEvent::New(
|
||||
ui::VKEY_A, static_cast<int>(ui::DomCode::US_A),
|
||||
static_cast<int>(ui::DomKey::Constant<'a'>::Character), ui::EF_NONE,
|
||||
static_cast<int>(ui::DomKey::FromCharacter('a')), ui::EF_NONE,
|
||||
/*key_display=*/""))));
|
||||
|
||||
EXPECT_EQ(KeyA::Typed(ui::EF_SHIFT_DOWN | ui::EF_IS_CUSTOMIZED_FROM_BUTTON),
|
||||
@ -1530,22 +1530,20 @@ INSTANTIATE_TEST_SUITE_P(
|
||||
// KeyEvent rewriting test cases:
|
||||
// Remap A -> B.
|
||||
{{GetButton(ui::VKEY_A),
|
||||
mojom::KeyEvent(
|
||||
ui::VKEY_B,
|
||||
static_cast<int>(ui::DomCode::US_B),
|
||||
static_cast<int>(ui::DomKey::Constant<'b'>::Character),
|
||||
ui::EF_NONE,
|
||||
/*key_display=*/"")},
|
||||
mojom::KeyEvent(ui::VKEY_B,
|
||||
static_cast<int>(ui::DomCode::US_B),
|
||||
static_cast<int>(ui::DomKey::FromCharacter('b')),
|
||||
ui::EF_NONE,
|
||||
/*key_display=*/"")},
|
||||
{KeyA::Typed(), KeyB::Typed()}},
|
||||
|
||||
// Remap A -> B, Pressing B is no-op.
|
||||
{{GetButton(ui::VKEY_A),
|
||||
mojom::KeyEvent(
|
||||
ui::VKEY_B,
|
||||
static_cast<int>(ui::DomCode::US_B),
|
||||
static_cast<int>(ui::DomKey::Constant<'b'>::Character),
|
||||
ui::EF_NONE,
|
||||
/*key_display=*/"")},
|
||||
mojom::KeyEvent(ui::VKEY_B,
|
||||
static_cast<int>(ui::DomCode::US_B),
|
||||
static_cast<int>(ui::DomKey::FromCharacter('b')),
|
||||
ui::EF_NONE,
|
||||
/*key_display=*/"")},
|
||||
{KeyB::Typed(), KeyB::Typed()}},
|
||||
|
||||
// Remap CTRL -> ALT.
|
||||
@ -1569,12 +1567,11 @@ INSTANTIATE_TEST_SUITE_P(
|
||||
|
||||
// Remap A -> CTRL + SHIFT + B.
|
||||
{{GetButton(ui::VKEY_A),
|
||||
mojom::KeyEvent(
|
||||
ui::VKEY_B,
|
||||
static_cast<int>(ui::DomCode::US_B),
|
||||
static_cast<int>(ui::DomKey::Constant<'b'>::Character),
|
||||
ui::EF_CONTROL_DOWN | ui::EF_SHIFT_DOWN,
|
||||
/*key_display=*/"")},
|
||||
mojom::KeyEvent(ui::VKEY_B,
|
||||
static_cast<int>(ui::DomCode::US_B),
|
||||
static_cast<int>(ui::DomKey::FromCharacter('b')),
|
||||
ui::EF_CONTROL_DOWN | ui::EF_SHIFT_DOWN,
|
||||
/*key_display=*/"")},
|
||||
{KeyA::Typed(),
|
||||
std::vector<TestEventVariant>{
|
||||
KeyLControl::Pressed(), KeyLShift::Pressed(ui::EF_CONTROL_DOWN),
|
||||
@ -1586,12 +1583,11 @@ INSTANTIATE_TEST_SUITE_P(
|
||||
// MouseEvent rewriting test cases:
|
||||
// Remap Middle -> CTRL + SHIFT + B.
|
||||
{{GetButton(mojom::CustomizableButton::kMiddle),
|
||||
mojom::KeyEvent(
|
||||
ui::VKEY_B,
|
||||
static_cast<int>(ui::DomCode::US_B),
|
||||
static_cast<int>(ui::DomKey::Constant<'b'>::Character),
|
||||
ui::EF_CONTROL_DOWN | ui::EF_SHIFT_DOWN,
|
||||
/*key_display=*/"")},
|
||||
mojom::KeyEvent(ui::VKEY_B,
|
||||
static_cast<int>(ui::DomCode::US_B),
|
||||
static_cast<int>(ui::DomKey::FromCharacter('b')),
|
||||
ui::EF_CONTROL_DOWN | ui::EF_SHIFT_DOWN,
|
||||
/*key_display=*/"")},
|
||||
{ButtonMiddle::Typed(),
|
||||
std::vector<TestEventVariant>{
|
||||
KeyLControl::Pressed(), KeyLShift::Pressed(ui::EF_CONTROL_DOWN),
|
||||
@ -1602,12 +1598,11 @@ INSTANTIATE_TEST_SUITE_P(
|
||||
|
||||
// Remap Middle -> CTRL + SHIFT + B with ALT down.
|
||||
{{GetButton(mojom::CustomizableButton::kMiddle),
|
||||
mojom::KeyEvent(
|
||||
ui::VKEY_B,
|
||||
static_cast<int>(ui::DomCode::US_B),
|
||||
static_cast<int>(ui::DomKey::Constant<'b'>::Character),
|
||||
ui::EF_CONTROL_DOWN | ui::EF_SHIFT_DOWN,
|
||||
/*key_display=*/"")},
|
||||
mojom::KeyEvent(ui::VKEY_B,
|
||||
static_cast<int>(ui::DomCode::US_B),
|
||||
static_cast<int>(ui::DomKey::FromCharacter('b')),
|
||||
ui::EF_CONTROL_DOWN | ui::EF_SHIFT_DOWN,
|
||||
/*key_display=*/"")},
|
||||
{ButtonMiddle::Typed(ui::EF_ALT_DOWN),
|
||||
std::vector<TestEventVariant>{
|
||||
KeyLControl::Pressed(ui::EF_ALT_DOWN),
|
||||
@ -1630,24 +1625,22 @@ INSTANTIATE_TEST_SUITE_P(
|
||||
|
||||
// Remap Middle -> B and check left mouse button is a no-op.
|
||||
{{GetButton(mojom::CustomizableButton::kMiddle),
|
||||
mojom::KeyEvent(
|
||||
ui::VKEY_B,
|
||||
static_cast<int>(ui::DomCode::US_B),
|
||||
static_cast<int>(ui::DomKey::Constant<'b'>::Character),
|
||||
ui::EF_CONTROL_DOWN | ui::EF_SHIFT_DOWN,
|
||||
/*key_display=*/"")},
|
||||
mojom::KeyEvent(ui::VKEY_B,
|
||||
static_cast<int>(ui::DomCode::US_B),
|
||||
static_cast<int>(ui::DomKey::FromCharacter('b')),
|
||||
ui::EF_CONTROL_DOWN | ui::EF_SHIFT_DOWN,
|
||||
/*key_display=*/"")},
|
||||
{ButtonLeft::Typed(ui::EF_ALT_DOWN),
|
||||
ButtonLeft::Typed(ui::EF_ALT_DOWN)}},
|
||||
|
||||
// Scroll Wheel tests:
|
||||
{{GetButton(mojom::CustomizableButton::kScrollLeft),
|
||||
mojom::KeyEvent(
|
||||
ui::VKEY_Z,
|
||||
static_cast<int>(ui::DomCode::US_Z),
|
||||
static_cast<int>(ui::DomKey::Constant<'z'>::Character),
|
||||
ui::EF_COMMAND_DOWN | ui::EF_CONTROL_DOWN | ui::EF_SHIFT_DOWN |
|
||||
ui::EF_ALT_DOWN,
|
||||
/*key_display=*/"")},
|
||||
mojom::KeyEvent(ui::VKEY_Z,
|
||||
static_cast<int>(ui::DomCode::US_Z),
|
||||
static_cast<int>(ui::DomKey::FromCharacter('z')),
|
||||
ui::EF_COMMAND_DOWN | ui::EF_CONTROL_DOWN |
|
||||
ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN,
|
||||
/*key_display=*/"")},
|
||||
{ScrollLeft::Typed(),
|
||||
std::vector<TestEventVariant>{
|
||||
KeyLMeta::Pressed(), KeyLControl::Pressed(ui::EF_COMMAND_DOWN),
|
||||
@ -1665,12 +1658,11 @@ INSTANTIATE_TEST_SUITE_P(
|
||||
KeyLMeta::Released()}}},
|
||||
|
||||
{{GetButton(mojom::CustomizableButton::kScrollLeft),
|
||||
mojom::KeyEvent(
|
||||
ui::VKEY_Z,
|
||||
static_cast<int>(ui::DomCode::US_Z),
|
||||
static_cast<int>(ui::DomKey::Constant<'z'>::Character),
|
||||
ui::EF_COMMAND_DOWN,
|
||||
/*key_display=*/"")},
|
||||
mojom::KeyEvent(ui::VKEY_Z,
|
||||
static_cast<int>(ui::DomCode::US_Z),
|
||||
static_cast<int>(ui::DomKey::FromCharacter('z')),
|
||||
ui::EF_COMMAND_DOWN,
|
||||
/*key_display=*/"")},
|
||||
{ScrollLeft::Typed(),
|
||||
std::vector<TestEventVariant>{
|
||||
KeyLMeta::Pressed(), KeyZ::Pressed(ui::EF_COMMAND_DOWN),
|
||||
|
@ -300,10 +300,10 @@ template <ui::DomCode code,
|
||||
ui::KeyboardCode keycode,
|
||||
char shifted_key = key>
|
||||
using TestCharKey = TestKey<code,
|
||||
ui::DomKey::Constant<key>::Character,
|
||||
ui::DomKey::FromCharacter(key),
|
||||
keycode,
|
||||
ui::EF_NONE,
|
||||
ui::DomKey::Constant<shifted_key>::Character>;
|
||||
ui::DomKey::FromCharacter(shifted_key)>;
|
||||
|
||||
using KeyUnknown =
|
||||
TestKey<ui::DomCode::NONE, ui::DomKey::UNIDENTIFIED, ui::VKEY_UNKNOWN>;
|
||||
@ -1224,21 +1224,20 @@ TEST_P(EventRewriterTest, TestRewriteModifiersNoRemapMultipleKeys) {
|
||||
ui::EF_ALT_DOWN | ui::EF_COMMAND_DOWN));
|
||||
|
||||
// Press Shift+Ctrl+Alt+Search+B. Confirm the event is not rewritten.
|
||||
EXPECT_EQ(
|
||||
KeyB::Typed(ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN |
|
||||
ui::EF_COMMAND_DOWN),
|
||||
RunRewriter(
|
||||
// In this case, SHIFT modifier will be set on pressing B,
|
||||
// thus we should use capital 'B' as DomKey, which the current
|
||||
// factory does not support.
|
||||
// Modifier flags will be annotated to TestKeyEvents inside
|
||||
// RunRewriter.
|
||||
{TestKeyEvent{ui::ET_KEY_PRESSED, ui::DomCode::US_B,
|
||||
ui::DomKey::Constant<'B'>::Character, ui::VKEY_B},
|
||||
TestKeyEvent{ui::ET_KEY_RELEASED, ui::DomCode::US_B,
|
||||
ui::DomKey::Constant<'B'>::Character, ui::VKEY_B}},
|
||||
ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN |
|
||||
ui::EF_COMMAND_DOWN));
|
||||
EXPECT_EQ(KeyB::Typed(ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN |
|
||||
ui::EF_ALT_DOWN | ui::EF_COMMAND_DOWN),
|
||||
RunRewriter(
|
||||
// In this case, SHIFT modifier will be set on pressing B,
|
||||
// thus we should use capital 'B' as DomKey, which the current
|
||||
// factory does not support.
|
||||
// Modifier flags will be annotated to TestKeyEvents inside
|
||||
// RunRewriter.
|
||||
{TestKeyEvent{ui::ET_KEY_PRESSED, ui::DomCode::US_B,
|
||||
ui::DomKey::FromCharacter('B'), ui::VKEY_B},
|
||||
TestKeyEvent{ui::ET_KEY_RELEASED, ui::DomCode::US_B,
|
||||
ui::DomKey::FromCharacter('B'), ui::VKEY_B}},
|
||||
ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN |
|
||||
ui::EF_COMMAND_DOWN));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -184,7 +184,7 @@ TEST_F(AcceleratorManagerTest, PositionalShortcuts_AllEqual) {
|
||||
const Accelerator accelerator(VKEY_OEM_6, EF_CONTROL_DOWN);
|
||||
manager.Register({accelerator}, AcceleratorManager::kNormalPriority, &target);
|
||||
KeyEvent event(ui::ET_KEY_PRESSED, VKEY_OEM_6, ui::DomCode::BRACKET_RIGHT,
|
||||
ui::EF_CONTROL_DOWN, ui::DomKey::Constant<']'>::Character,
|
||||
ui::EF_CONTROL_DOWN, ui::DomKey::FromCharacter(']'),
|
||||
base::TimeTicks());
|
||||
const Accelerator trigger(event);
|
||||
EXPECT_TRUE(manager.IsRegistered(trigger));
|
||||
@ -207,7 +207,7 @@ TEST_F(AcceleratorManagerTest, PositionalShortcuts_MatchingDomCode) {
|
||||
const Accelerator accelerator(VKEY_OEM_6, EF_CONTROL_DOWN);
|
||||
manager.Register({accelerator}, AcceleratorManager::kNormalPriority, &target);
|
||||
KeyEvent event(ui::ET_KEY_PRESSED, VKEY_OEM_PLUS, ui::DomCode::BRACKET_RIGHT,
|
||||
ui::EF_CONTROL_DOWN, ui::DomKey::Constant<']'>::Character,
|
||||
ui::EF_CONTROL_DOWN, ui::DomKey::FromCharacter(']'),
|
||||
base::TimeTicks());
|
||||
const Accelerator trigger(event);
|
||||
EXPECT_TRUE(manager.IsRegistered(trigger));
|
||||
@ -231,7 +231,7 @@ TEST_F(AcceleratorManagerTest, PositionalShortcuts_NotMatchingDomCode) {
|
||||
const Accelerator accelerator(VKEY_OEM_6, EF_CONTROL_DOWN);
|
||||
manager.Register({accelerator}, AcceleratorManager::kNormalPriority, &target);
|
||||
KeyEvent event(ui::ET_KEY_PRESSED, VKEY_OEM_6, ui::DomCode::BRACKET_LEFT,
|
||||
ui::EF_CONTROL_DOWN, ui::DomKey::Constant<']'>::Character,
|
||||
ui::EF_CONTROL_DOWN, ui::DomKey::FromCharacter(']'),
|
||||
base::TimeTicks());
|
||||
const Accelerator trigger(event);
|
||||
EXPECT_FALSE(manager.IsRegistered(trigger));
|
||||
@ -255,7 +255,7 @@ TEST_F(AcceleratorManagerTest, PositionalShortcuts_NonPositionalMatch) {
|
||||
const Accelerator accelerator(VKEY_Z, EF_CONTROL_DOWN);
|
||||
manager.Register({accelerator}, AcceleratorManager::kNormalPriority, &target);
|
||||
KeyEvent event(ui::ET_KEY_PRESSED, VKEY_Z, ui::DomCode::US_Y,
|
||||
ui::EF_CONTROL_DOWN, ui::DomKey::Constant<']'>::Character,
|
||||
ui::EF_CONTROL_DOWN, ui::DomKey::FromCharacter(']'),
|
||||
base::TimeTicks());
|
||||
const Accelerator trigger(event);
|
||||
EXPECT_TRUE(manager.IsRegistered(trigger));
|
||||
@ -278,7 +278,7 @@ TEST_F(AcceleratorManagerTest, PositionalShortcuts_NonPositionalNonMatch) {
|
||||
const Accelerator accelerator(VKEY_Z, EF_CONTROL_DOWN);
|
||||
manager.Register({accelerator}, AcceleratorManager::kNormalPriority, &target);
|
||||
KeyEvent event(ui::ET_KEY_PRESSED, VKEY_Y, ui::DomCode::US_Z,
|
||||
ui::EF_CONTROL_DOWN, ui::DomKey::Constant<']'>::Character,
|
||||
ui::EF_CONTROL_DOWN, ui::DomKey::FromCharacter(']'),
|
||||
base::TimeTicks());
|
||||
const Accelerator trigger(event);
|
||||
EXPECT_FALSE(manager.IsRegistered(trigger));
|
||||
|
@ -1861,39 +1861,29 @@ void EventRewriterAsh::RewriteNumPadKeys(const KeyEvent& key_event,
|
||||
static const struct NumPadRemapping {
|
||||
KeyboardCode input_key_code;
|
||||
MutableKeyState result;
|
||||
} kNumPadRemappings[] = {{VKEY_DELETE,
|
||||
{EF_NONE, DomCode::NONE,
|
||||
DomKey::Constant<'.'>::Character, VKEY_DECIMAL}},
|
||||
{VKEY_INSERT,
|
||||
{EF_NONE, DomCode::NONE,
|
||||
DomKey::Constant<'0'>::Character, VKEY_NUMPAD0}},
|
||||
{VKEY_END,
|
||||
{EF_NONE, DomCode::NONE,
|
||||
DomKey::Constant<'1'>::Character, VKEY_NUMPAD1}},
|
||||
{VKEY_DOWN,
|
||||
{EF_NONE, DomCode::NONE,
|
||||
DomKey::Constant<'2'>::Character, VKEY_NUMPAD2}},
|
||||
{VKEY_NEXT,
|
||||
{EF_NONE, DomCode::NONE,
|
||||
DomKey::Constant<'3'>::Character, VKEY_NUMPAD3}},
|
||||
{VKEY_LEFT,
|
||||
{EF_NONE, DomCode::NONE,
|
||||
DomKey::Constant<'4'>::Character, VKEY_NUMPAD4}},
|
||||
{VKEY_CLEAR,
|
||||
{EF_NONE, DomCode::NONE,
|
||||
DomKey::Constant<'5'>::Character, VKEY_NUMPAD5}},
|
||||
{VKEY_RIGHT,
|
||||
{EF_NONE, DomCode::NONE,
|
||||
DomKey::Constant<'6'>::Character, VKEY_NUMPAD6}},
|
||||
{VKEY_HOME,
|
||||
{EF_NONE, DomCode::NONE,
|
||||
DomKey::Constant<'7'>::Character, VKEY_NUMPAD7}},
|
||||
{VKEY_UP,
|
||||
{EF_NONE, DomCode::NONE,
|
||||
DomKey::Constant<'8'>::Character, VKEY_NUMPAD8}},
|
||||
{VKEY_PRIOR,
|
||||
{EF_NONE, DomCode::NONE,
|
||||
DomKey::Constant<'9'>::Character, VKEY_NUMPAD9}}};
|
||||
} kNumPadRemappings[] = {
|
||||
{VKEY_DELETE,
|
||||
{EF_NONE, DomCode::NONE, DomKey::FromCharacter('.'), VKEY_DECIMAL}},
|
||||
{VKEY_INSERT,
|
||||
{EF_NONE, DomCode::NONE, DomKey::FromCharacter('0'), VKEY_NUMPAD0}},
|
||||
{VKEY_END,
|
||||
{EF_NONE, DomCode::NONE, DomKey::FromCharacter('1'), VKEY_NUMPAD1}},
|
||||
{VKEY_DOWN,
|
||||
{EF_NONE, DomCode::NONE, DomKey::FromCharacter('2'), VKEY_NUMPAD2}},
|
||||
{VKEY_NEXT,
|
||||
{EF_NONE, DomCode::NONE, DomKey::FromCharacter('3'), VKEY_NUMPAD3}},
|
||||
{VKEY_LEFT,
|
||||
{EF_NONE, DomCode::NONE, DomKey::FromCharacter('4'), VKEY_NUMPAD4}},
|
||||
{VKEY_CLEAR,
|
||||
{EF_NONE, DomCode::NONE, DomKey::FromCharacter('5'), VKEY_NUMPAD5}},
|
||||
{VKEY_RIGHT,
|
||||
{EF_NONE, DomCode::NONE, DomKey::FromCharacter('6'), VKEY_NUMPAD6}},
|
||||
{VKEY_HOME,
|
||||
{EF_NONE, DomCode::NONE, DomKey::FromCharacter('7'), VKEY_NUMPAD7}},
|
||||
{VKEY_UP,
|
||||
{EF_NONE, DomCode::NONE, DomKey::FromCharacter('8'), VKEY_NUMPAD8}},
|
||||
{VKEY_PRIOR,
|
||||
{EF_NONE, DomCode::NONE, DomKey::FromCharacter('9'), VKEY_NUMPAD9}}};
|
||||
for (const auto& map : kNumPadRemappings) {
|
||||
if (state->key_code == map.input_key_code) {
|
||||
if (KeycodeConverter::DomCodeToLocation(state->code) ==
|
||||
|
@ -116,7 +116,7 @@ class DomKey {
|
||||
}
|
||||
|
||||
// Obtain the encoded integer representation of the DomKey.
|
||||
operator Base() const { return value_; }
|
||||
constexpr operator Base() const { return value_; }
|
||||
|
||||
// True if the value is a valid DomKey (which excludes DomKey::NONE and
|
||||
// integers not following the DomKey format).
|
||||
@ -146,28 +146,18 @@ class DomKey {
|
||||
}
|
||||
|
||||
// Returns a DomKey for the given Unicode character.
|
||||
static DomKey FromCharacter(uint32_t character) {
|
||||
constexpr static DomKey FromCharacter(uint32_t character) {
|
||||
DCHECK(character <= 0x10FFFF);
|
||||
return DomKey(TYPE_UNICODE | character);
|
||||
}
|
||||
|
||||
// Returns a dead-key DomKey for the given combining character.
|
||||
static DomKey DeadKeyFromCombiningCharacter(uint32_t combining_character) {
|
||||
constexpr static DomKey DeadKeyFromCombiningCharacter(
|
||||
uint32_t combining_character) {
|
||||
DCHECK(combining_character <= 0x10FFFF);
|
||||
return DomKey(TYPE_DEAD | combining_character);
|
||||
}
|
||||
|
||||
// Provide means to generate constant DomKey::Base values, primarily to
|
||||
// allow conversion tables to be constant, without startup construction.
|
||||
// In the future (cue the theremin) this can be replaced with constexpr
|
||||
// functions.
|
||||
template<Base C> struct Constant {
|
||||
enum : Base {
|
||||
Character = TYPE_UNICODE | C,
|
||||
Dead = TYPE_DEAD | C,
|
||||
};
|
||||
};
|
||||
|
||||
private:
|
||||
static bool IsValidValue(Base value) { return (value & TYPE_MASK) != 0; }
|
||||
|
||||
|
@ -47,56 +47,56 @@ DomKey GetKeyFromFullLookupTable(DomCode dom_code) {
|
||||
// 'complete' keyboard layout. They can also use this to construct a partial
|
||||
// layout with valid DomKey values for the populated entries.
|
||||
static base::flat_map<DomCode, DomKey> kFullLookupTable(
|
||||
{{DomCode::DIGIT0, DomKey::Constant<'0'>::Character},
|
||||
{DomCode::DIGIT1, DomKey::Constant<'1'>::Character},
|
||||
{DomCode::DIGIT2, DomKey::Constant<'2'>::Character},
|
||||
{DomCode::DIGIT3, DomKey::Constant<'3'>::Character},
|
||||
{DomCode::DIGIT4, DomKey::Constant<'4'>::Character},
|
||||
{DomCode::DIGIT5, DomKey::Constant<'5'>::Character},
|
||||
{DomCode::DIGIT6, DomKey::Constant<'6'>::Character},
|
||||
{DomCode::DIGIT7, DomKey::Constant<'7'>::Character},
|
||||
{DomCode::DIGIT8, DomKey::Constant<'8'>::Character},
|
||||
{DomCode::DIGIT9, DomKey::Constant<'9'>::Character},
|
||||
{DomCode::US_A, DomKey::Constant<'a'>::Character},
|
||||
{DomCode::US_B, DomKey::Constant<'b'>::Character},
|
||||
{DomCode::US_C, DomKey::Constant<'c'>::Character},
|
||||
{DomCode::US_D, DomKey::Constant<'d'>::Character},
|
||||
{DomCode::US_E, DomKey::Constant<'e'>::Character},
|
||||
{DomCode::US_F, DomKey::Constant<'f'>::Character},
|
||||
{DomCode::US_G, DomKey::Constant<'g'>::Character},
|
||||
{DomCode::US_H, DomKey::Constant<'h'>::Character},
|
||||
{DomCode::US_I, DomKey::Constant<'i'>::Character},
|
||||
{DomCode::US_J, DomKey::Constant<'j'>::Character},
|
||||
{DomCode::US_K, DomKey::Constant<'k'>::Character},
|
||||
{DomCode::US_L, DomKey::Constant<'l'>::Character},
|
||||
{DomCode::US_M, DomKey::Constant<'m'>::Character},
|
||||
{DomCode::US_N, DomKey::Constant<'n'>::Character},
|
||||
{DomCode::US_O, DomKey::Constant<'o'>::Character},
|
||||
{DomCode::US_P, DomKey::Constant<'p'>::Character},
|
||||
{DomCode::US_Q, DomKey::Constant<'q'>::Character},
|
||||
{DomCode::US_R, DomKey::Constant<'r'>::Character},
|
||||
{DomCode::US_S, DomKey::Constant<'s'>::Character},
|
||||
{DomCode::US_T, DomKey::Constant<'t'>::Character},
|
||||
{DomCode::US_U, DomKey::Constant<'u'>::Character},
|
||||
{DomCode::US_V, DomKey::Constant<'v'>::Character},
|
||||
{DomCode::US_W, DomKey::Constant<'w'>::Character},
|
||||
{DomCode::US_X, DomKey::Constant<'x'>::Character},
|
||||
{DomCode::US_Y, DomKey::Constant<'y'>::Character},
|
||||
{DomCode::US_Z, DomKey::Constant<'z'>::Character},
|
||||
{DomCode::BACKQUOTE, DomKey::Constant<'`'>::Character},
|
||||
{DomCode::MINUS, DomKey::Constant<'-'>::Character},
|
||||
{DomCode::EQUAL, DomKey::Constant<'='>::Character},
|
||||
{DomCode::INTL_YEN, DomKey::Constant<0x00A5>::Dead},
|
||||
{DomCode::BRACKET_LEFT, DomKey::Constant<'{'>::Character},
|
||||
{DomCode::BRACKET_RIGHT, DomKey::Constant<'}'>::Character},
|
||||
{DomCode::BACKSLASH, DomKey::Constant<'\\'>::Character},
|
||||
{DomCode::SEMICOLON, DomKey::Constant<';'>::Character},
|
||||
{DomCode::QUOTE, DomKey::Constant<'\''>::Character},
|
||||
{DomCode::INTL_BACKSLASH, DomKey::Constant<'/'>::Character},
|
||||
{DomCode::COMMA, DomKey::Constant<','>::Character},
|
||||
{DomCode::PERIOD, DomKey::Constant<'.'>::Character},
|
||||
{DomCode::SLASH, DomKey::Constant<'/'>::Character},
|
||||
{DomCode::INTL_RO, DomKey::Constant<0x308D>::Dead}});
|
||||
{{DomCode::DIGIT0, DomKey::FromCharacter('0')},
|
||||
{DomCode::DIGIT1, DomKey::FromCharacter('1')},
|
||||
{DomCode::DIGIT2, DomKey::FromCharacter('2')},
|
||||
{DomCode::DIGIT3, DomKey::FromCharacter('3')},
|
||||
{DomCode::DIGIT4, DomKey::FromCharacter('4')},
|
||||
{DomCode::DIGIT5, DomKey::FromCharacter('5')},
|
||||
{DomCode::DIGIT6, DomKey::FromCharacter('6')},
|
||||
{DomCode::DIGIT7, DomKey::FromCharacter('7')},
|
||||
{DomCode::DIGIT8, DomKey::FromCharacter('8')},
|
||||
{DomCode::DIGIT9, DomKey::FromCharacter('9')},
|
||||
{DomCode::US_A, DomKey::FromCharacter('a')},
|
||||
{DomCode::US_B, DomKey::FromCharacter('b')},
|
||||
{DomCode::US_C, DomKey::FromCharacter('c')},
|
||||
{DomCode::US_D, DomKey::FromCharacter('d')},
|
||||
{DomCode::US_E, DomKey::FromCharacter('e')},
|
||||
{DomCode::US_F, DomKey::FromCharacter('f')},
|
||||
{DomCode::US_G, DomKey::FromCharacter('g')},
|
||||
{DomCode::US_H, DomKey::FromCharacter('h')},
|
||||
{DomCode::US_I, DomKey::FromCharacter('i')},
|
||||
{DomCode::US_J, DomKey::FromCharacter('j')},
|
||||
{DomCode::US_K, DomKey::FromCharacter('k')},
|
||||
{DomCode::US_L, DomKey::FromCharacter('l')},
|
||||
{DomCode::US_M, DomKey::FromCharacter('m')},
|
||||
{DomCode::US_N, DomKey::FromCharacter('n')},
|
||||
{DomCode::US_O, DomKey::FromCharacter('o')},
|
||||
{DomCode::US_P, DomKey::FromCharacter('p')},
|
||||
{DomCode::US_Q, DomKey::FromCharacter('q')},
|
||||
{DomCode::US_R, DomKey::FromCharacter('r')},
|
||||
{DomCode::US_S, DomKey::FromCharacter('s')},
|
||||
{DomCode::US_T, DomKey::FromCharacter('t')},
|
||||
{DomCode::US_U, DomKey::FromCharacter('u')},
|
||||
{DomCode::US_V, DomKey::FromCharacter('v')},
|
||||
{DomCode::US_W, DomKey::FromCharacter('w')},
|
||||
{DomCode::US_X, DomKey::FromCharacter('x')},
|
||||
{DomCode::US_Y, DomKey::FromCharacter('y')},
|
||||
{DomCode::US_Z, DomKey::FromCharacter('z')},
|
||||
{DomCode::BACKQUOTE, DomKey::FromCharacter('`')},
|
||||
{DomCode::MINUS, DomKey::FromCharacter('-')},
|
||||
{DomCode::EQUAL, DomKey::FromCharacter('=')},
|
||||
{DomCode::INTL_YEN, DomKey::DeadKeyFromCombiningCharacter(0x00A5)},
|
||||
{DomCode::BRACKET_LEFT, DomKey::FromCharacter('{')},
|
||||
{DomCode::BRACKET_RIGHT, DomKey::FromCharacter('}')},
|
||||
{DomCode::BACKSLASH, DomKey::FromCharacter('\\')},
|
||||
{DomCode::SEMICOLON, DomKey::FromCharacter(';')},
|
||||
{DomCode::QUOTE, DomKey::FromCharacter('\'')},
|
||||
{DomCode::INTL_BACKSLASH, DomKey::FromCharacter('/')},
|
||||
{DomCode::COMMA, DomKey::FromCharacter(',')},
|
||||
{DomCode::PERIOD, DomKey::FromCharacter('.')},
|
||||
{DomCode::SLASH, DomKey::FromCharacter('/')},
|
||||
{DomCode::INTL_RO, DomKey::DeadKeyFromCombiningCharacter(0x308D)}});
|
||||
|
||||
// Ensure the 'full' lookup table contains the same number of elements as the
|
||||
// writing system table used by the class under test. Ideally this would be a
|
||||
@ -114,25 +114,25 @@ DomKey GetKeyFromCombiningLayoutTable(DomCode dom_code) {
|
||||
// Used for testing combining keys in both printable and combining forms.
|
||||
static base::flat_map<DomCode, DomKey> kCombiningLayoutTable({
|
||||
// Grave, combining.
|
||||
{DomCode::DIGIT0, DomKey::Constant<0x0300>::Dead},
|
||||
{DomCode::DIGIT0, DomKey::DeadKeyFromCombiningCharacter(0x0300)},
|
||||
// Grave, printable.
|
||||
{DomCode::DIGIT1, DomKey::Constant<0x0060>::Character},
|
||||
{DomCode::DIGIT1, DomKey::FromCharacter(0x0060)},
|
||||
// Acute, combining.
|
||||
{DomCode::DIGIT2, DomKey::Constant<0x0301>::Dead},
|
||||
{DomCode::DIGIT2, DomKey::DeadKeyFromCombiningCharacter(0x0301)},
|
||||
// Acute, printable.
|
||||
{DomCode::DIGIT3, DomKey::Constant<0x0027>::Character},
|
||||
{DomCode::DIGIT3, DomKey::FromCharacter(0x0027)},
|
||||
// Circumflex, combining.
|
||||
{DomCode::DIGIT4, DomKey::Constant<0x0302>::Dead},
|
||||
{DomCode::DIGIT4, DomKey::DeadKeyFromCombiningCharacter(0x0302)},
|
||||
// Circumflex, printable.
|
||||
{DomCode::DIGIT5, DomKey::Constant<0x005e>::Character},
|
||||
{DomCode::DIGIT5, DomKey::FromCharacter(0x005e)},
|
||||
// Tilde, combining.
|
||||
{DomCode::DIGIT6, DomKey::Constant<0x0303>::Dead},
|
||||
{DomCode::DIGIT6, DomKey::DeadKeyFromCombiningCharacter(0x0303)},
|
||||
// Tilde, printable.
|
||||
{DomCode::DIGIT7, DomKey::Constant<0x007e>::Character},
|
||||
{DomCode::DIGIT7, DomKey::FromCharacter(0x007e)},
|
||||
// Diaeresis, combining.
|
||||
{DomCode::DIGIT8, DomKey::Constant<0x0308>::Dead},
|
||||
{DomCode::DIGIT8, DomKey::DeadKeyFromCombiningCharacter(0x0308)},
|
||||
// Diaeresis, printable.
|
||||
{DomCode::DIGIT9, DomKey::Constant<0x00a8>::Character},
|
||||
{DomCode::DIGIT9, DomKey::FromCharacter(0x00a8)},
|
||||
});
|
||||
|
||||
if (kCombiningLayoutTable.count(dom_code) == 0)
|
||||
|
@ -193,11 +193,10 @@ TEST(KeycodeConverter, DomKey) {
|
||||
{ui::DomKey::NONE, false, false, false, "?!?", false},
|
||||
{ui::DomKey::NONE, false, false, false, "\x61\xCC\x81", false},
|
||||
// Some single Unicode characters.
|
||||
{ui::DomKey::Constant<'-'>::Character, true, false, true, "-", false},
|
||||
{ui::DomKey::Constant<'A'>::Character, true, false, true, "A", false},
|
||||
{ui::DomKey::Constant<0xE1>::Character, true, false, true, "\xC3\xA1",
|
||||
false},
|
||||
{ui::DomKey::Constant<0x1F648>::Character, true, false, true,
|
||||
{ui::DomKey::FromCharacter('-'), true, false, true, "-", false},
|
||||
{ui::DomKey::FromCharacter('A'), true, false, true, "A", false},
|
||||
{ui::DomKey::FromCharacter(0xE1), true, false, true, "\xC3\xA1", false},
|
||||
{ui::DomKey::FromCharacter(0x1F648), true, false, true,
|
||||
"\xF0\x9F\x99\x88", false},
|
||||
// Unicode-equivalent named values.
|
||||
{ui::DomKey::BACKSPACE, true, false, true, "Backspace", true},
|
||||
@ -210,16 +209,14 @@ TEST(KeycodeConverter, DomKey) {
|
||||
{ui::DomKey::ENTER, true, false, false, "\r", true},
|
||||
{ui::DomKey::ESCAPE, true, false, false, "\x1B", true},
|
||||
{ui::DomKey::DEL, true, false, false, "\x7F", true},
|
||||
{ui::DomKey::Constant<'\b'>::Character, true, false, true, "Backspace",
|
||||
true},
|
||||
{ui::DomKey::Constant<'\t'>::Character, true, false, true, "Tab", true},
|
||||
{ui::DomKey::Constant<'\r'>::Character, true, false, true, "Enter", true},
|
||||
{ui::DomKey::Constant<0x1B>::Character, true, false, true, "Escape",
|
||||
true},
|
||||
{ui::DomKey::Constant<0x7F>::Character, true, false, true, "Delete",
|
||||
true},
|
||||
{ui::DomKey::FromCharacter('\b'), true, false, true, "Backspace", true},
|
||||
{ui::DomKey::FromCharacter('\t'), true, false, true, "Tab", true},
|
||||
{ui::DomKey::FromCharacter('\r'), true, false, true, "Enter", true},
|
||||
{ui::DomKey::FromCharacter(0x1B), true, false, true, "Escape", true},
|
||||
{ui::DomKey::FromCharacter(0x7F), true, false, true, "Delete", true},
|
||||
// 'Dead' key.
|
||||
{ui::DomKey::Constant<0xFFFF>::Dead, false, true, true, "Dead", true},
|
||||
{ui::DomKey::DeadKeyFromCombiningCharacter(0xFFFF), false, true, true,
|
||||
"Dead", true},
|
||||
// Sample non-Unicode key names.
|
||||
{ui::DomKey::SHIFT, false, false, true, "Shift", true},
|
||||
{ui::DomKey::F16, false, false, true, "F16", true},
|
||||
|
@ -67,83 +67,83 @@ TEST(KeyboardCodeConversion, ControlCharacters) {
|
||||
Meaning control_key;
|
||||
} kControlCharacters[] = {
|
||||
{ui::DomCode::US_A,
|
||||
{true, ui::DomKey::Constant<0x01>::Character, ui::VKEY_A},
|
||||
{true, ui::DomKey::Constant<'a'>::Character, ui::VKEY_A}},
|
||||
{true, ui::DomKey::FromCharacter(0x01), ui::VKEY_A},
|
||||
{true, ui::DomKey::FromCharacter('a'), ui::VKEY_A}},
|
||||
{ui::DomCode::US_B,
|
||||
{true, ui::DomKey::Constant<0x02>::Character, ui::VKEY_B},
|
||||
{true, ui::DomKey::Constant<'b'>::Character, ui::VKEY_B}},
|
||||
{true, ui::DomKey::FromCharacter(0x02), ui::VKEY_B},
|
||||
{true, ui::DomKey::FromCharacter('b'), ui::VKEY_B}},
|
||||
{ui::DomCode::US_C,
|
||||
{true, ui::DomKey::Constant<0x03>::Character, ui::VKEY_C},
|
||||
{true, ui::DomKey::Constant<'c'>::Character, ui::VKEY_C}},
|
||||
{true, ui::DomKey::FromCharacter(0x03), ui::VKEY_C},
|
||||
{true, ui::DomKey::FromCharacter('c'), ui::VKEY_C}},
|
||||
{ui::DomCode::US_D,
|
||||
{true, ui::DomKey::Constant<0x04>::Character, ui::VKEY_D},
|
||||
{true, ui::DomKey::Constant<'d'>::Character, ui::VKEY_D}},
|
||||
{true, ui::DomKey::FromCharacter(0x04), ui::VKEY_D},
|
||||
{true, ui::DomKey::FromCharacter('d'), ui::VKEY_D}},
|
||||
{ui::DomCode::US_E,
|
||||
{true, ui::DomKey::Constant<0x05>::Character, ui::VKEY_E},
|
||||
{true, ui::DomKey::Constant<'e'>::Character, ui::VKEY_E}},
|
||||
{true, ui::DomKey::FromCharacter(0x05), ui::VKEY_E},
|
||||
{true, ui::DomKey::FromCharacter('e'), ui::VKEY_E}},
|
||||
{ui::DomCode::US_F,
|
||||
{true, ui::DomKey::Constant<0x06>::Character, ui::VKEY_F},
|
||||
{true, ui::DomKey::Constant<'f'>::Character, ui::VKEY_F}},
|
||||
{true, ui::DomKey::FromCharacter(0x06), ui::VKEY_F},
|
||||
{true, ui::DomKey::FromCharacter('f'), ui::VKEY_F}},
|
||||
{ui::DomCode::US_G,
|
||||
{true, ui::DomKey::Constant<0x07>::Character, ui::VKEY_G},
|
||||
{true, ui::DomKey::Constant<'g'>::Character, ui::VKEY_G}},
|
||||
{true, ui::DomKey::FromCharacter(0x07), ui::VKEY_G},
|
||||
{true, ui::DomKey::FromCharacter('g'), ui::VKEY_G}},
|
||||
{ui::DomCode::US_H,
|
||||
{true, ui::DomKey::BACKSPACE, ui::VKEY_BACK},
|
||||
{true, ui::DomKey::Constant<'h'>::Character, ui::VKEY_H}},
|
||||
{true, ui::DomKey::FromCharacter('h'), ui::VKEY_H}},
|
||||
{ui::DomCode::US_I,
|
||||
{true, ui::DomKey::TAB, ui::VKEY_TAB},
|
||||
{true, ui::DomKey::Constant<'i'>::Character, ui::VKEY_I}},
|
||||
{true, ui::DomKey::FromCharacter('i'), ui::VKEY_I}},
|
||||
{ui::DomCode::US_J,
|
||||
{true, ui::DomKey::Constant<0x0A>::Character, ui::VKEY_J},
|
||||
{true, ui::DomKey::Constant<'j'>::Character, ui::VKEY_J}},
|
||||
{true, ui::DomKey::FromCharacter(0x0A), ui::VKEY_J},
|
||||
{true, ui::DomKey::FromCharacter('j'), ui::VKEY_J}},
|
||||
{ui::DomCode::US_K,
|
||||
{true, ui::DomKey::Constant<0x0B>::Character, ui::VKEY_K},
|
||||
{true, ui::DomKey::Constant<'k'>::Character, ui::VKEY_K}},
|
||||
{true, ui::DomKey::FromCharacter(0x0B), ui::VKEY_K},
|
||||
{true, ui::DomKey::FromCharacter('k'), ui::VKEY_K}},
|
||||
{ui::DomCode::US_L,
|
||||
{true, ui::DomKey::Constant<0x0C>::Character, ui::VKEY_L},
|
||||
{true, ui::DomKey::Constant<'l'>::Character, ui::VKEY_L}},
|
||||
{true, ui::DomKey::FromCharacter(0x0C), ui::VKEY_L},
|
||||
{true, ui::DomKey::FromCharacter('l'), ui::VKEY_L}},
|
||||
{ui::DomCode::US_M,
|
||||
{true, ui::DomKey::ENTER, ui::VKEY_RETURN},
|
||||
{true, ui::DomKey::Constant<'m'>::Character, ui::VKEY_M}},
|
||||
{true, ui::DomKey::FromCharacter('m'), ui::VKEY_M}},
|
||||
{ui::DomCode::US_N,
|
||||
{true, ui::DomKey::Constant<0x0E>::Character, ui::VKEY_N},
|
||||
{true, ui::DomKey::Constant<'n'>::Character, ui::VKEY_N}},
|
||||
{true, ui::DomKey::FromCharacter(0x0E), ui::VKEY_N},
|
||||
{true, ui::DomKey::FromCharacter('n'), ui::VKEY_N}},
|
||||
{ui::DomCode::US_O,
|
||||
{true, ui::DomKey::Constant<0x0F>::Character, ui::VKEY_O},
|
||||
{true, ui::DomKey::Constant<'o'>::Character, ui::VKEY_O}},
|
||||
{true, ui::DomKey::FromCharacter(0x0F), ui::VKEY_O},
|
||||
{true, ui::DomKey::FromCharacter('o'), ui::VKEY_O}},
|
||||
{ui::DomCode::US_P,
|
||||
{true, ui::DomKey::Constant<0x10>::Character, ui::VKEY_P},
|
||||
{true, ui::DomKey::Constant<'p'>::Character, ui::VKEY_P}},
|
||||
{true, ui::DomKey::FromCharacter(0x10), ui::VKEY_P},
|
||||
{true, ui::DomKey::FromCharacter('p'), ui::VKEY_P}},
|
||||
{ui::DomCode::US_Q,
|
||||
{true, ui::DomKey::Constant<0x11>::Character, ui::VKEY_Q},
|
||||
{true, ui::DomKey::Constant<'q'>::Character, ui::VKEY_Q}},
|
||||
{true, ui::DomKey::FromCharacter(0x11), ui::VKEY_Q},
|
||||
{true, ui::DomKey::FromCharacter('q'), ui::VKEY_Q}},
|
||||
{ui::DomCode::US_R,
|
||||
{true, ui::DomKey::Constant<0x12>::Character, ui::VKEY_R},
|
||||
{true, ui::DomKey::Constant<'r'>::Character, ui::VKEY_R}},
|
||||
{true, ui::DomKey::FromCharacter(0x12), ui::VKEY_R},
|
||||
{true, ui::DomKey::FromCharacter('r'), ui::VKEY_R}},
|
||||
{ui::DomCode::US_S,
|
||||
{true, ui::DomKey::Constant<0x13>::Character, ui::VKEY_S},
|
||||
{true, ui::DomKey::Constant<'s'>::Character, ui::VKEY_S}},
|
||||
{true, ui::DomKey::FromCharacter(0x13), ui::VKEY_S},
|
||||
{true, ui::DomKey::FromCharacter('s'), ui::VKEY_S}},
|
||||
{ui::DomCode::US_T,
|
||||
{true, ui::DomKey::Constant<0x14>::Character, ui::VKEY_T},
|
||||
{true, ui::DomKey::Constant<'t'>::Character, ui::VKEY_T}},
|
||||
{true, ui::DomKey::FromCharacter(0x14), ui::VKEY_T},
|
||||
{true, ui::DomKey::FromCharacter('t'), ui::VKEY_T}},
|
||||
{ui::DomCode::US_U,
|
||||
{true, ui::DomKey::Constant<0x15>::Character, ui::VKEY_U},
|
||||
{true, ui::DomKey::Constant<'u'>::Character, ui::VKEY_U}},
|
||||
{true, ui::DomKey::FromCharacter(0x15), ui::VKEY_U},
|
||||
{true, ui::DomKey::FromCharacter('u'), ui::VKEY_U}},
|
||||
{ui::DomCode::US_V,
|
||||
{true, ui::DomKey::Constant<0x16>::Character, ui::VKEY_V},
|
||||
{true, ui::DomKey::Constant<'v'>::Character, ui::VKEY_V}},
|
||||
{true, ui::DomKey::FromCharacter(0x16), ui::VKEY_V},
|
||||
{true, ui::DomKey::FromCharacter('v'), ui::VKEY_V}},
|
||||
{ui::DomCode::US_W,
|
||||
{true, ui::DomKey::Constant<0x17>::Character, ui::VKEY_W},
|
||||
{true, ui::DomKey::Constant<'w'>::Character, ui::VKEY_W}},
|
||||
{true, ui::DomKey::FromCharacter(0x17), ui::VKEY_W},
|
||||
{true, ui::DomKey::FromCharacter('w'), ui::VKEY_W}},
|
||||
{ui::DomCode::US_X,
|
||||
{true, ui::DomKey::Constant<0x18>::Character, ui::VKEY_X},
|
||||
{true, ui::DomKey::Constant<'x'>::Character, ui::VKEY_X}},
|
||||
{true, ui::DomKey::FromCharacter(0x18), ui::VKEY_X},
|
||||
{true, ui::DomKey::FromCharacter('x'), ui::VKEY_X}},
|
||||
{ui::DomCode::US_Y,
|
||||
{true, ui::DomKey::Constant<0x19>::Character, ui::VKEY_Y},
|
||||
{true, ui::DomKey::Constant<'y'>::Character, ui::VKEY_Y}},
|
||||
{true, ui::DomKey::FromCharacter(0x19), ui::VKEY_Y},
|
||||
{true, ui::DomKey::FromCharacter('y'), ui::VKEY_Y}},
|
||||
{ui::DomCode::US_Z,
|
||||
{true, ui::DomKey::Constant<0x1A>::Character, ui::VKEY_Z},
|
||||
{true, ui::DomKey::Constant<'z'>::Character, ui::VKEY_Z}},
|
||||
{true, ui::DomKey::FromCharacter(0x1A), ui::VKEY_Z},
|
||||
{true, ui::DomKey::FromCharacter('z'), ui::VKEY_Z}},
|
||||
};
|
||||
for (const auto& it : kControlCharacters) {
|
||||
// Verify |DomCodeToControlCharacter()|.
|
||||
@ -172,39 +172,39 @@ TEST(KeyboardCodeConversion, ControlCharacters) {
|
||||
} kShiftControlCharacters[] = {
|
||||
{ui::DomCode::DIGIT2,
|
||||
{false, ui::DomKey::NONE, ui::VKEY_UNKNOWN},
|
||||
{true, ui::DomKey::Constant<0>::Character, ui::VKEY_2},
|
||||
{true, ui::DomKey::Constant<'2'>::Character, ui::VKEY_2},
|
||||
{true, ui::DomKey::Constant<'@'>::Character, ui::VKEY_2}},
|
||||
{true, ui::DomKey::FromCharacter(0), ui::VKEY_2},
|
||||
{true, ui::DomKey::FromCharacter('2'), ui::VKEY_2},
|
||||
{true, ui::DomKey::FromCharacter('@'), ui::VKEY_2}},
|
||||
{ui::DomCode::DIGIT6,
|
||||
{false, ui::DomKey::NONE, ui::VKEY_UNKNOWN},
|
||||
{true, ui::DomKey::Constant<0x1E>::Character, ui::VKEY_6},
|
||||
{true, ui::DomKey::Constant<'6'>::Character, ui::VKEY_6},
|
||||
{true, ui::DomKey::Constant<'^'>::Character, ui::VKEY_6}},
|
||||
{true, ui::DomKey::FromCharacter(0x1E), ui::VKEY_6},
|
||||
{true, ui::DomKey::FromCharacter('6'), ui::VKEY_6},
|
||||
{true, ui::DomKey::FromCharacter('^'), ui::VKEY_6}},
|
||||
{ui::DomCode::MINUS,
|
||||
{false, ui::DomKey::NONE, ui::VKEY_UNKNOWN},
|
||||
{true, ui::DomKey::Constant<0x1F>::Character, ui::VKEY_OEM_MINUS},
|
||||
{true, ui::DomKey::Constant<'-'>::Character, ui::VKEY_OEM_MINUS},
|
||||
{true, ui::DomKey::Constant<'_'>::Character, ui::VKEY_OEM_MINUS}},
|
||||
{true, ui::DomKey::FromCharacter(0x1F), ui::VKEY_OEM_MINUS},
|
||||
{true, ui::DomKey::FromCharacter('-'), ui::VKEY_OEM_MINUS},
|
||||
{true, ui::DomKey::FromCharacter('_'), ui::VKEY_OEM_MINUS}},
|
||||
{ui::DomCode::ENTER,
|
||||
{true, ui::DomKey::Constant<0x0A>::Character, ui::VKEY_RETURN},
|
||||
{true, ui::DomKey::FromCharacter(0x0A), ui::VKEY_RETURN},
|
||||
{false, ui::DomKey::NONE, ui::VKEY_UNKNOWN},
|
||||
{true, ui::DomKey::ENTER, ui::VKEY_RETURN},
|
||||
{true, ui::DomKey::ENTER, ui::VKEY_RETURN}},
|
||||
{ui::DomCode::BRACKET_LEFT,
|
||||
{true, ui::DomKey::ESCAPE, ui::VKEY_OEM_4},
|
||||
{false, ui::DomKey::NONE, ui::VKEY_UNKNOWN},
|
||||
{true, ui::DomKey::Constant<'['>::Character, ui::VKEY_OEM_4},
|
||||
{true, ui::DomKey::Constant<'{'>::Character, ui::VKEY_OEM_4}},
|
||||
{true, ui::DomKey::FromCharacter('['), ui::VKEY_OEM_4},
|
||||
{true, ui::DomKey::FromCharacter('{'), ui::VKEY_OEM_4}},
|
||||
{ui::DomCode::BACKSLASH,
|
||||
{true, ui::DomKey::Constant<0x1C>::Character, ui::VKEY_OEM_5},
|
||||
{true, ui::DomKey::FromCharacter(0x1C), ui::VKEY_OEM_5},
|
||||
{false, ui::DomKey::NONE, ui::VKEY_UNKNOWN},
|
||||
{true, ui::DomKey::Constant<'\\'>::Character, ui::VKEY_OEM_5},
|
||||
{true, ui::DomKey::Constant<'|'>::Character, ui::VKEY_OEM_5}},
|
||||
{true, ui::DomKey::FromCharacter('\\'), ui::VKEY_OEM_5},
|
||||
{true, ui::DomKey::FromCharacter('|'), ui::VKEY_OEM_5}},
|
||||
{ui::DomCode::BRACKET_RIGHT,
|
||||
{true, ui::DomKey::Constant<0x1D>::Character, ui::VKEY_OEM_6},
|
||||
{true, ui::DomKey::FromCharacter(0x1D), ui::VKEY_OEM_6},
|
||||
{false, ui::DomKey::NONE, ui::VKEY_UNKNOWN},
|
||||
{true, ui::DomKey::Constant<']'>::Character, ui::VKEY_OEM_6},
|
||||
{true, ui::DomKey::Constant<'}'>::Character, ui::VKEY_OEM_6}},
|
||||
{true, ui::DomKey::FromCharacter(']'), ui::VKEY_OEM_6},
|
||||
{true, ui::DomKey::FromCharacter('}'), ui::VKEY_OEM_6}},
|
||||
};
|
||||
for (const auto& it : kShiftControlCharacters) {
|
||||
// Verify |DomCodeToControlCharacter()|.
|
||||
@ -256,11 +256,11 @@ TEST(KeyboardCodeConversion, ControlCharacters) {
|
||||
{true, ui::DomKey::META, ui::VKEY_LWIN},
|
||||
{true, ui::DomKey::META, ui::VKEY_LWIN}},
|
||||
{ui::DomCode::DIGIT1,
|
||||
{true, ui::DomKey::Constant<'1'>::Character, ui::VKEY_1},
|
||||
{true, ui::DomKey::Constant<'!'>::Character, ui::VKEY_1}},
|
||||
{true, ui::DomKey::FromCharacter('1'), ui::VKEY_1},
|
||||
{true, ui::DomKey::FromCharacter('!'), ui::VKEY_1}},
|
||||
{ui::DomCode::EQUAL,
|
||||
{true, ui::DomKey::Constant<'='>::Character, ui::VKEY_OEM_PLUS},
|
||||
{true, ui::DomKey::Constant<'+'>::Character, ui::VKEY_OEM_PLUS}},
|
||||
{true, ui::DomKey::FromCharacter('='), ui::VKEY_OEM_PLUS},
|
||||
{true, ui::DomKey::FromCharacter('+'), ui::VKEY_OEM_PLUS}},
|
||||
{ui::DomCode::TAB,
|
||||
{true, ui::DomKey::TAB, ui::VKEY_TAB},
|
||||
{true, ui::DomKey::TAB, ui::VKEY_TAB}},
|
||||
@ -302,215 +302,215 @@ TEST(KeyboardCodeConversion, UsLayout) {
|
||||
Meaning shift;
|
||||
} kPrintableUsLayout[] = {
|
||||
{ui::DomCode::US_A,
|
||||
{true, ui::DomKey::Constant<'a'>::Character, ui::VKEY_A},
|
||||
{true, ui::DomKey::Constant<'A'>::Character, ui::VKEY_A}},
|
||||
{true, ui::DomKey::FromCharacter('a'), ui::VKEY_A},
|
||||
{true, ui::DomKey::FromCharacter('A'), ui::VKEY_A}},
|
||||
{ui::DomCode::US_B,
|
||||
{true, ui::DomKey::Constant<'b'>::Character, ui::VKEY_B},
|
||||
{true, ui::DomKey::Constant<'B'>::Character, ui::VKEY_B}},
|
||||
{true, ui::DomKey::FromCharacter('b'), ui::VKEY_B},
|
||||
{true, ui::DomKey::FromCharacter('B'), ui::VKEY_B}},
|
||||
{ui::DomCode::US_C,
|
||||
{true, ui::DomKey::Constant<'c'>::Character, ui::VKEY_C},
|
||||
{true, ui::DomKey::Constant<'C'>::Character, ui::VKEY_C}},
|
||||
{true, ui::DomKey::FromCharacter('c'), ui::VKEY_C},
|
||||
{true, ui::DomKey::FromCharacter('C'), ui::VKEY_C}},
|
||||
{ui::DomCode::US_D,
|
||||
{true, ui::DomKey::Constant<'d'>::Character, ui::VKEY_D},
|
||||
{true, ui::DomKey::Constant<'D'>::Character, ui::VKEY_D}},
|
||||
{true, ui::DomKey::FromCharacter('d'), ui::VKEY_D},
|
||||
{true, ui::DomKey::FromCharacter('D'), ui::VKEY_D}},
|
||||
{ui::DomCode::US_E,
|
||||
{true, ui::DomKey::Constant<'e'>::Character, ui::VKEY_E},
|
||||
{true, ui::DomKey::Constant<'E'>::Character, ui::VKEY_E}},
|
||||
{true, ui::DomKey::FromCharacter('e'), ui::VKEY_E},
|
||||
{true, ui::DomKey::FromCharacter('E'), ui::VKEY_E}},
|
||||
{ui::DomCode::US_F,
|
||||
{true, ui::DomKey::Constant<'f'>::Character, ui::VKEY_F},
|
||||
{true, ui::DomKey::Constant<'F'>::Character, ui::VKEY_F}},
|
||||
{true, ui::DomKey::FromCharacter('f'), ui::VKEY_F},
|
||||
{true, ui::DomKey::FromCharacter('F'), ui::VKEY_F}},
|
||||
{ui::DomCode::US_G,
|
||||
{true, ui::DomKey::Constant<'g'>::Character, ui::VKEY_G},
|
||||
{true, ui::DomKey::Constant<'G'>::Character, ui::VKEY_G}},
|
||||
{true, ui::DomKey::FromCharacter('g'), ui::VKEY_G},
|
||||
{true, ui::DomKey::FromCharacter('G'), ui::VKEY_G}},
|
||||
{ui::DomCode::US_H,
|
||||
{true, ui::DomKey::Constant<'h'>::Character, ui::VKEY_H},
|
||||
{true, ui::DomKey::Constant<'H'>::Character, ui::VKEY_H}},
|
||||
{true, ui::DomKey::FromCharacter('h'), ui::VKEY_H},
|
||||
{true, ui::DomKey::FromCharacter('H'), ui::VKEY_H}},
|
||||
{ui::DomCode::US_I,
|
||||
{true, ui::DomKey::Constant<'i'>::Character, ui::VKEY_I},
|
||||
{true, ui::DomKey::Constant<'I'>::Character, ui::VKEY_I}},
|
||||
{true, ui::DomKey::FromCharacter('i'), ui::VKEY_I},
|
||||
{true, ui::DomKey::FromCharacter('I'), ui::VKEY_I}},
|
||||
{ui::DomCode::US_J,
|
||||
{true, ui::DomKey::Constant<'j'>::Character, ui::VKEY_J},
|
||||
{true, ui::DomKey::Constant<'J'>::Character, ui::VKEY_J}},
|
||||
{true, ui::DomKey::FromCharacter('j'), ui::VKEY_J},
|
||||
{true, ui::DomKey::FromCharacter('J'), ui::VKEY_J}},
|
||||
{ui::DomCode::US_K,
|
||||
{true, ui::DomKey::Constant<'k'>::Character, ui::VKEY_K},
|
||||
{true, ui::DomKey::Constant<'K'>::Character, ui::VKEY_K}},
|
||||
{true, ui::DomKey::FromCharacter('k'), ui::VKEY_K},
|
||||
{true, ui::DomKey::FromCharacter('K'), ui::VKEY_K}},
|
||||
{ui::DomCode::US_L,
|
||||
{true, ui::DomKey::Constant<'l'>::Character, ui::VKEY_L},
|
||||
{true, ui::DomKey::Constant<'L'>::Character, ui::VKEY_L}},
|
||||
{true, ui::DomKey::FromCharacter('l'), ui::VKEY_L},
|
||||
{true, ui::DomKey::FromCharacter('L'), ui::VKEY_L}},
|
||||
{ui::DomCode::US_M,
|
||||
{true, ui::DomKey::Constant<'m'>::Character, ui::VKEY_M},
|
||||
{true, ui::DomKey::Constant<'M'>::Character, ui::VKEY_M}},
|
||||
{true, ui::DomKey::FromCharacter('m'), ui::VKEY_M},
|
||||
{true, ui::DomKey::FromCharacter('M'), ui::VKEY_M}},
|
||||
{ui::DomCode::US_N,
|
||||
{true, ui::DomKey::Constant<'n'>::Character, ui::VKEY_N},
|
||||
{true, ui::DomKey::Constant<'N'>::Character, ui::VKEY_N}},
|
||||
{true, ui::DomKey::FromCharacter('n'), ui::VKEY_N},
|
||||
{true, ui::DomKey::FromCharacter('N'), ui::VKEY_N}},
|
||||
{ui::DomCode::US_O,
|
||||
{true, ui::DomKey::Constant<'o'>::Character, ui::VKEY_O},
|
||||
{true, ui::DomKey::Constant<'O'>::Character, ui::VKEY_O}},
|
||||
{true, ui::DomKey::FromCharacter('o'), ui::VKEY_O},
|
||||
{true, ui::DomKey::FromCharacter('O'), ui::VKEY_O}},
|
||||
{ui::DomCode::US_P,
|
||||
{true, ui::DomKey::Constant<'p'>::Character, ui::VKEY_P},
|
||||
{true, ui::DomKey::Constant<'P'>::Character, ui::VKEY_P}},
|
||||
{true, ui::DomKey::FromCharacter('p'), ui::VKEY_P},
|
||||
{true, ui::DomKey::FromCharacter('P'), ui::VKEY_P}},
|
||||
{ui::DomCode::US_Q,
|
||||
{true, ui::DomKey::Constant<'q'>::Character, ui::VKEY_Q},
|
||||
{true, ui::DomKey::Constant<'Q'>::Character, ui::VKEY_Q}},
|
||||
{true, ui::DomKey::FromCharacter('q'), ui::VKEY_Q},
|
||||
{true, ui::DomKey::FromCharacter('Q'), ui::VKEY_Q}},
|
||||
{ui::DomCode::US_R,
|
||||
{true, ui::DomKey::Constant<'r'>::Character, ui::VKEY_R},
|
||||
{true, ui::DomKey::Constant<'R'>::Character, ui::VKEY_R}},
|
||||
{true, ui::DomKey::FromCharacter('r'), ui::VKEY_R},
|
||||
{true, ui::DomKey::FromCharacter('R'), ui::VKEY_R}},
|
||||
{ui::DomCode::US_S,
|
||||
{true, ui::DomKey::Constant<'s'>::Character, ui::VKEY_S},
|
||||
{true, ui::DomKey::Constant<'S'>::Character, ui::VKEY_S}},
|
||||
{true, ui::DomKey::FromCharacter('s'), ui::VKEY_S},
|
||||
{true, ui::DomKey::FromCharacter('S'), ui::VKEY_S}},
|
||||
{ui::DomCode::US_T,
|
||||
{true, ui::DomKey::Constant<'t'>::Character, ui::VKEY_T},
|
||||
{true, ui::DomKey::Constant<'T'>::Character, ui::VKEY_T}},
|
||||
{true, ui::DomKey::FromCharacter('t'), ui::VKEY_T},
|
||||
{true, ui::DomKey::FromCharacter('T'), ui::VKEY_T}},
|
||||
{ui::DomCode::US_U,
|
||||
{true, ui::DomKey::Constant<'u'>::Character, ui::VKEY_U},
|
||||
{true, ui::DomKey::Constant<'U'>::Character, ui::VKEY_U}},
|
||||
{true, ui::DomKey::FromCharacter('u'), ui::VKEY_U},
|
||||
{true, ui::DomKey::FromCharacter('U'), ui::VKEY_U}},
|
||||
{ui::DomCode::US_V,
|
||||
{true, ui::DomKey::Constant<'v'>::Character, ui::VKEY_V},
|
||||
{true, ui::DomKey::Constant<'V'>::Character, ui::VKEY_V}},
|
||||
{true, ui::DomKey::FromCharacter('v'), ui::VKEY_V},
|
||||
{true, ui::DomKey::FromCharacter('V'), ui::VKEY_V}},
|
||||
{ui::DomCode::US_W,
|
||||
{true, ui::DomKey::Constant<'w'>::Character, ui::VKEY_W},
|
||||
{true, ui::DomKey::Constant<'W'>::Character, ui::VKEY_W}},
|
||||
{true, ui::DomKey::FromCharacter('w'), ui::VKEY_W},
|
||||
{true, ui::DomKey::FromCharacter('W'), ui::VKEY_W}},
|
||||
{ui::DomCode::US_X,
|
||||
{true, ui::DomKey::Constant<'x'>::Character, ui::VKEY_X},
|
||||
{true, ui::DomKey::Constant<'X'>::Character, ui::VKEY_X}},
|
||||
{true, ui::DomKey::FromCharacter('x'), ui::VKEY_X},
|
||||
{true, ui::DomKey::FromCharacter('X'), ui::VKEY_X}},
|
||||
{ui::DomCode::US_Y,
|
||||
{true, ui::DomKey::Constant<'y'>::Character, ui::VKEY_Y},
|
||||
{true, ui::DomKey::Constant<'Y'>::Character, ui::VKEY_Y}},
|
||||
{true, ui::DomKey::FromCharacter('y'), ui::VKEY_Y},
|
||||
{true, ui::DomKey::FromCharacter('Y'), ui::VKEY_Y}},
|
||||
{ui::DomCode::US_Z,
|
||||
{true, ui::DomKey::Constant<'z'>::Character, ui::VKEY_Z},
|
||||
{true, ui::DomKey::Constant<'Z'>::Character, ui::VKEY_Z}},
|
||||
{true, ui::DomKey::FromCharacter('z'), ui::VKEY_Z},
|
||||
{true, ui::DomKey::FromCharacter('Z'), ui::VKEY_Z}},
|
||||
{ui::DomCode::DIGIT1,
|
||||
{true, ui::DomKey::Constant<'1'>::Character, ui::VKEY_1},
|
||||
{true, ui::DomKey::Constant<'!'>::Character, ui::VKEY_1}},
|
||||
{true, ui::DomKey::FromCharacter('1'), ui::VKEY_1},
|
||||
{true, ui::DomKey::FromCharacter('!'), ui::VKEY_1}},
|
||||
{ui::DomCode::DIGIT2,
|
||||
{true, ui::DomKey::Constant<'2'>::Character, ui::VKEY_2},
|
||||
{true, ui::DomKey::Constant<'@'>::Character, ui::VKEY_2}},
|
||||
{true, ui::DomKey::FromCharacter('2'), ui::VKEY_2},
|
||||
{true, ui::DomKey::FromCharacter('@'), ui::VKEY_2}},
|
||||
{ui::DomCode::DIGIT3,
|
||||
{true, ui::DomKey::Constant<'3'>::Character, ui::VKEY_3},
|
||||
{true, ui::DomKey::Constant<'#'>::Character, ui::VKEY_3}},
|
||||
{true, ui::DomKey::FromCharacter('3'), ui::VKEY_3},
|
||||
{true, ui::DomKey::FromCharacter('#'), ui::VKEY_3}},
|
||||
{ui::DomCode::DIGIT4,
|
||||
{true, ui::DomKey::Constant<'4'>::Character, ui::VKEY_4},
|
||||
{true, ui::DomKey::Constant<'$'>::Character, ui::VKEY_4}},
|
||||
{true, ui::DomKey::FromCharacter('4'), ui::VKEY_4},
|
||||
{true, ui::DomKey::FromCharacter('$'), ui::VKEY_4}},
|
||||
{ui::DomCode::DIGIT5,
|
||||
{true, ui::DomKey::Constant<'5'>::Character, ui::VKEY_5},
|
||||
{true, ui::DomKey::Constant<'%'>::Character, ui::VKEY_5}},
|
||||
{true, ui::DomKey::FromCharacter('5'), ui::VKEY_5},
|
||||
{true, ui::DomKey::FromCharacter('%'), ui::VKEY_5}},
|
||||
{ui::DomCode::DIGIT6,
|
||||
{true, ui::DomKey::Constant<'6'>::Character, ui::VKEY_6},
|
||||
{true, ui::DomKey::Constant<'^'>::Character, ui::VKEY_6}},
|
||||
{true, ui::DomKey::FromCharacter('6'), ui::VKEY_6},
|
||||
{true, ui::DomKey::FromCharacter('^'), ui::VKEY_6}},
|
||||
{ui::DomCode::DIGIT7,
|
||||
{true, ui::DomKey::Constant<'7'>::Character, ui::VKEY_7},
|
||||
{true, ui::DomKey::Constant<'&'>::Character, ui::VKEY_7}},
|
||||
{true, ui::DomKey::FromCharacter('7'), ui::VKEY_7},
|
||||
{true, ui::DomKey::FromCharacter('&'), ui::VKEY_7}},
|
||||
{ui::DomCode::DIGIT8,
|
||||
{true, ui::DomKey::Constant<'8'>::Character, ui::VKEY_8},
|
||||
{true, ui::DomKey::Constant<'*'>::Character, ui::VKEY_8}},
|
||||
{true, ui::DomKey::FromCharacter('8'), ui::VKEY_8},
|
||||
{true, ui::DomKey::FromCharacter('*'), ui::VKEY_8}},
|
||||
{ui::DomCode::DIGIT9,
|
||||
{true, ui::DomKey::Constant<'9'>::Character, ui::VKEY_9},
|
||||
{true, ui::DomKey::Constant<'('>::Character, ui::VKEY_9}},
|
||||
{true, ui::DomKey::FromCharacter('9'), ui::VKEY_9},
|
||||
{true, ui::DomKey::FromCharacter('('), ui::VKEY_9}},
|
||||
{ui::DomCode::DIGIT0,
|
||||
{true, ui::DomKey::Constant<'0'>::Character, ui::VKEY_0},
|
||||
{true, ui::DomKey::Constant<')'>::Character, ui::VKEY_0}},
|
||||
{true, ui::DomKey::FromCharacter('0'), ui::VKEY_0},
|
||||
{true, ui::DomKey::FromCharacter(')'), ui::VKEY_0}},
|
||||
{ui::DomCode::SPACE,
|
||||
{true, ui::DomKey::Constant<' '>::Character, ui::VKEY_SPACE},
|
||||
{true, ui::DomKey::Constant<' '>::Character, ui::VKEY_SPACE}},
|
||||
{true, ui::DomKey::FromCharacter(' '), ui::VKEY_SPACE},
|
||||
{true, ui::DomKey::FromCharacter(' '), ui::VKEY_SPACE}},
|
||||
{ui::DomCode::MINUS,
|
||||
{true, ui::DomKey::Constant<'-'>::Character, ui::VKEY_OEM_MINUS},
|
||||
{true, ui::DomKey::Constant<'_'>::Character, ui::VKEY_OEM_MINUS}},
|
||||
{true, ui::DomKey::FromCharacter('-'), ui::VKEY_OEM_MINUS},
|
||||
{true, ui::DomKey::FromCharacter('_'), ui::VKEY_OEM_MINUS}},
|
||||
{ui::DomCode::EQUAL,
|
||||
{true, ui::DomKey::Constant<'='>::Character, ui::VKEY_OEM_PLUS},
|
||||
{true, ui::DomKey::Constant<'+'>::Character, ui::VKEY_OEM_PLUS}},
|
||||
{true, ui::DomKey::FromCharacter('='), ui::VKEY_OEM_PLUS},
|
||||
{true, ui::DomKey::FromCharacter('+'), ui::VKEY_OEM_PLUS}},
|
||||
{ui::DomCode::BRACKET_LEFT,
|
||||
{true, ui::DomKey::Constant<'['>::Character, ui::VKEY_OEM_4},
|
||||
{true, ui::DomKey::Constant<'{'>::Character, ui::VKEY_OEM_4}},
|
||||
{true, ui::DomKey::FromCharacter('['), ui::VKEY_OEM_4},
|
||||
{true, ui::DomKey::FromCharacter('{'), ui::VKEY_OEM_4}},
|
||||
{ui::DomCode::BRACKET_RIGHT,
|
||||
{true, ui::DomKey::Constant<']'>::Character, ui::VKEY_OEM_6},
|
||||
{true, ui::DomKey::Constant<'}'>::Character, ui::VKEY_OEM_6}},
|
||||
{true, ui::DomKey::FromCharacter(']'), ui::VKEY_OEM_6},
|
||||
{true, ui::DomKey::FromCharacter('}'), ui::VKEY_OEM_6}},
|
||||
{ui::DomCode::BACKSLASH,
|
||||
{true, ui::DomKey::Constant<'\\'>::Character, ui::VKEY_OEM_5},
|
||||
{true, ui::DomKey::Constant<'|'>::Character, ui::VKEY_OEM_5}},
|
||||
{true, ui::DomKey::FromCharacter('\\'), ui::VKEY_OEM_5},
|
||||
{true, ui::DomKey::FromCharacter('|'), ui::VKEY_OEM_5}},
|
||||
{ui::DomCode::SEMICOLON,
|
||||
{true, ui::DomKey::Constant<';'>::Character, ui::VKEY_OEM_1},
|
||||
{true, ui::DomKey::Constant<':'>::Character, ui::VKEY_OEM_1}},
|
||||
{true, ui::DomKey::FromCharacter(';'), ui::VKEY_OEM_1},
|
||||
{true, ui::DomKey::FromCharacter(':'), ui::VKEY_OEM_1}},
|
||||
{ui::DomCode::QUOTE,
|
||||
{true, ui::DomKey::Constant<'\''>::Character, ui::VKEY_OEM_7},
|
||||
{true, ui::DomKey::Constant<'"'>::Character, ui::VKEY_OEM_7}},
|
||||
{true, ui::DomKey::FromCharacter('\''), ui::VKEY_OEM_7},
|
||||
{true, ui::DomKey::FromCharacter('"'), ui::VKEY_OEM_7}},
|
||||
{ui::DomCode::BACKQUOTE,
|
||||
{true, ui::DomKey::Constant<'`'>::Character, ui::VKEY_OEM_3},
|
||||
{true, ui::DomKey::Constant<'~'>::Character, ui::VKEY_OEM_3}},
|
||||
{true, ui::DomKey::FromCharacter('`'), ui::VKEY_OEM_3},
|
||||
{true, ui::DomKey::FromCharacter('~'), ui::VKEY_OEM_3}},
|
||||
{ui::DomCode::COMMA,
|
||||
{true, ui::DomKey::Constant<','>::Character, ui::VKEY_OEM_COMMA},
|
||||
{true, ui::DomKey::Constant<'<'>::Character, ui::VKEY_OEM_COMMA}},
|
||||
{true, ui::DomKey::FromCharacter(','), ui::VKEY_OEM_COMMA},
|
||||
{true, ui::DomKey::FromCharacter('<'), ui::VKEY_OEM_COMMA}},
|
||||
{ui::DomCode::PERIOD,
|
||||
{true, ui::DomKey::Constant<'.'>::Character, ui::VKEY_OEM_PERIOD},
|
||||
{true, ui::DomKey::Constant<'>'>::Character, ui::VKEY_OEM_PERIOD}},
|
||||
{true, ui::DomKey::FromCharacter('.'), ui::VKEY_OEM_PERIOD},
|
||||
{true, ui::DomKey::FromCharacter('>'), ui::VKEY_OEM_PERIOD}},
|
||||
{ui::DomCode::SLASH,
|
||||
{true, ui::DomKey::Constant<'/'>::Character, ui::VKEY_OEM_2},
|
||||
{true, ui::DomKey::Constant<'?'>::Character, ui::VKEY_OEM_2}},
|
||||
{true, ui::DomKey::FromCharacter('/'), ui::VKEY_OEM_2},
|
||||
{true, ui::DomKey::FromCharacter('?'), ui::VKEY_OEM_2}},
|
||||
{ui::DomCode::INTL_BACKSLASH,
|
||||
{true, ui::DomKey::Constant<'<'>::Character, ui::VKEY_OEM_102},
|
||||
{true, ui::DomKey::Constant<'>'>::Character, ui::VKEY_OEM_102}},
|
||||
{true, ui::DomKey::FromCharacter('<'), ui::VKEY_OEM_102},
|
||||
{true, ui::DomKey::FromCharacter('>'), ui::VKEY_OEM_102}},
|
||||
{ui::DomCode::INTL_YEN,
|
||||
{true, ui::DomKey::Constant<0x00A5>::Character, ui::VKEY_OEM_5},
|
||||
{true, ui::DomKey::Constant<'|'>::Character, ui::VKEY_OEM_5}},
|
||||
{true, ui::DomKey::FromCharacter(0x00A5), ui::VKEY_OEM_5},
|
||||
{true, ui::DomKey::FromCharacter('|'), ui::VKEY_OEM_5}},
|
||||
{ui::DomCode::NUMPAD_DIVIDE,
|
||||
{true, ui::DomKey::Constant<'/'>::Character, ui::VKEY_DIVIDE},
|
||||
{true, ui::DomKey::Constant<'/'>::Character, ui::VKEY_DIVIDE}},
|
||||
{true, ui::DomKey::FromCharacter('/'), ui::VKEY_DIVIDE},
|
||||
{true, ui::DomKey::FromCharacter('/'), ui::VKEY_DIVIDE}},
|
||||
{ui::DomCode::NUMPAD_MULTIPLY,
|
||||
{true, ui::DomKey::Constant<'*'>::Character, ui::VKEY_MULTIPLY},
|
||||
{true, ui::DomKey::Constant<'*'>::Character, ui::VKEY_MULTIPLY}},
|
||||
{true, ui::DomKey::FromCharacter('*'), ui::VKEY_MULTIPLY},
|
||||
{true, ui::DomKey::FromCharacter('*'), ui::VKEY_MULTIPLY}},
|
||||
{ui::DomCode::NUMPAD_SUBTRACT,
|
||||
{true, ui::DomKey::Constant<'-'>::Character, ui::VKEY_SUBTRACT},
|
||||
{true, ui::DomKey::Constant<'-'>::Character, ui::VKEY_SUBTRACT}},
|
||||
{true, ui::DomKey::FromCharacter('-'), ui::VKEY_SUBTRACT},
|
||||
{true, ui::DomKey::FromCharacter('-'), ui::VKEY_SUBTRACT}},
|
||||
{ui::DomCode::NUMPAD_ADD,
|
||||
{true, ui::DomKey::Constant<'+'>::Character, ui::VKEY_ADD},
|
||||
{true, ui::DomKey::Constant<'+'>::Character, ui::VKEY_ADD}},
|
||||
{true, ui::DomKey::FromCharacter('+'), ui::VKEY_ADD},
|
||||
{true, ui::DomKey::FromCharacter('+'), ui::VKEY_ADD}},
|
||||
{ui::DomCode::NUMPAD1,
|
||||
{true, ui::DomKey::Constant<'1'>::Character, ui::VKEY_1},
|
||||
{true, ui::DomKey::Constant<'1'>::Character, ui::VKEY_1}},
|
||||
{true, ui::DomKey::FromCharacter('1'), ui::VKEY_1},
|
||||
{true, ui::DomKey::FromCharacter('1'), ui::VKEY_1}},
|
||||
{ui::DomCode::NUMPAD2,
|
||||
{true, ui::DomKey::Constant<'2'>::Character, ui::VKEY_2},
|
||||
{true, ui::DomKey::Constant<'2'>::Character, ui::VKEY_2}},
|
||||
{true, ui::DomKey::FromCharacter('2'), ui::VKEY_2},
|
||||
{true, ui::DomKey::FromCharacter('2'), ui::VKEY_2}},
|
||||
{ui::DomCode::NUMPAD3,
|
||||
{true, ui::DomKey::Constant<'3'>::Character, ui::VKEY_3},
|
||||
{true, ui::DomKey::Constant<'3'>::Character, ui::VKEY_3}},
|
||||
{true, ui::DomKey::FromCharacter('3'), ui::VKEY_3},
|
||||
{true, ui::DomKey::FromCharacter('3'), ui::VKEY_3}},
|
||||
{ui::DomCode::NUMPAD4,
|
||||
{true, ui::DomKey::Constant<'4'>::Character, ui::VKEY_4},
|
||||
{true, ui::DomKey::Constant<'4'>::Character, ui::VKEY_4}},
|
||||
{true, ui::DomKey::FromCharacter('4'), ui::VKEY_4},
|
||||
{true, ui::DomKey::FromCharacter('4'), ui::VKEY_4}},
|
||||
{ui::DomCode::NUMPAD5,
|
||||
{true, ui::DomKey::Constant<'5'>::Character, ui::VKEY_5},
|
||||
{true, ui::DomKey::Constant<'5'>::Character, ui::VKEY_5}},
|
||||
{true, ui::DomKey::FromCharacter('5'), ui::VKEY_5},
|
||||
{true, ui::DomKey::FromCharacter('5'), ui::VKEY_5}},
|
||||
{ui::DomCode::NUMPAD6,
|
||||
{true, ui::DomKey::Constant<'6'>::Character, ui::VKEY_6},
|
||||
{true, ui::DomKey::Constant<'6'>::Character, ui::VKEY_6}},
|
||||
{true, ui::DomKey::FromCharacter('6'), ui::VKEY_6},
|
||||
{true, ui::DomKey::FromCharacter('6'), ui::VKEY_6}},
|
||||
{ui::DomCode::NUMPAD7,
|
||||
{true, ui::DomKey::Constant<'7'>::Character, ui::VKEY_7},
|
||||
{true, ui::DomKey::Constant<'7'>::Character, ui::VKEY_7}},
|
||||
{true, ui::DomKey::FromCharacter('7'), ui::VKEY_7},
|
||||
{true, ui::DomKey::FromCharacter('7'), ui::VKEY_7}},
|
||||
{ui::DomCode::NUMPAD8,
|
||||
{true, ui::DomKey::Constant<'8'>::Character, ui::VKEY_8},
|
||||
{true, ui::DomKey::Constant<'8'>::Character, ui::VKEY_8}},
|
||||
{true, ui::DomKey::FromCharacter('8'), ui::VKEY_8},
|
||||
{true, ui::DomKey::FromCharacter('8'), ui::VKEY_8}},
|
||||
{ui::DomCode::NUMPAD9,
|
||||
{true, ui::DomKey::Constant<'9'>::Character, ui::VKEY_9},
|
||||
{true, ui::DomKey::Constant<'9'>::Character, ui::VKEY_9}},
|
||||
{true, ui::DomKey::FromCharacter('9'), ui::VKEY_9},
|
||||
{true, ui::DomKey::FromCharacter('9'), ui::VKEY_9}},
|
||||
{ui::DomCode::NUMPAD0,
|
||||
{true, ui::DomKey::Constant<'0'>::Character, ui::VKEY_0},
|
||||
{true, ui::DomKey::Constant<'0'>::Character, ui::VKEY_0}},
|
||||
{true, ui::DomKey::FromCharacter('0'), ui::VKEY_0},
|
||||
{true, ui::DomKey::FromCharacter('0'), ui::VKEY_0}},
|
||||
{ui::DomCode::NUMPAD_DECIMAL,
|
||||
{true, ui::DomKey::Constant<'.'>::Character, ui::VKEY_DECIMAL},
|
||||
{true, ui::DomKey::Constant<'.'>::Character, ui::VKEY_DECIMAL}},
|
||||
{true, ui::DomKey::FromCharacter('.'), ui::VKEY_DECIMAL},
|
||||
{true, ui::DomKey::FromCharacter('.'), ui::VKEY_DECIMAL}},
|
||||
{ui::DomCode::NUMPAD_EQUAL,
|
||||
{true, ui::DomKey::Constant<'='>::Character, ui::VKEY_UNKNOWN},
|
||||
{true, ui::DomKey::Constant<'='>::Character, ui::VKEY_UNKNOWN}},
|
||||
{true, ui::DomKey::FromCharacter('='), ui::VKEY_UNKNOWN},
|
||||
{true, ui::DomKey::FromCharacter('='), ui::VKEY_UNKNOWN}},
|
||||
{ui::DomCode::NUMPAD_COMMA,
|
||||
{true, ui::DomKey::Constant<','>::Character, ui::VKEY_OEM_COMMA},
|
||||
{true, ui::DomKey::Constant<','>::Character, ui::VKEY_OEM_COMMA}},
|
||||
{true, ui::DomKey::FromCharacter(','), ui::VKEY_OEM_COMMA},
|
||||
{true, ui::DomKey::FromCharacter(','), ui::VKEY_OEM_COMMA}},
|
||||
{ui::DomCode::NUMPAD_PAREN_LEFT,
|
||||
{true, ui::DomKey::Constant<'('>::Character, ui::VKEY_UNKNOWN},
|
||||
{true, ui::DomKey::Constant<'('>::Character, ui::VKEY_UNKNOWN}},
|
||||
{true, ui::DomKey::FromCharacter('('), ui::VKEY_UNKNOWN},
|
||||
{true, ui::DomKey::FromCharacter('('), ui::VKEY_UNKNOWN}},
|
||||
{ui::DomCode::NUMPAD_PAREN_RIGHT,
|
||||
{true, ui::DomKey::Constant<')'>::Character, ui::VKEY_UNKNOWN},
|
||||
{true, ui::DomKey::Constant<')'>::Character, ui::VKEY_UNKNOWN}},
|
||||
{true, ui::DomKey::FromCharacter(')'), ui::VKEY_UNKNOWN},
|
||||
{true, ui::DomKey::FromCharacter(')'), ui::VKEY_UNKNOWN}},
|
||||
{ui::DomCode::NUMPAD_SIGN_CHANGE,
|
||||
{true, ui::DomKey::Constant<0xB1>::Character, ui::VKEY_UNKNOWN},
|
||||
{true, ui::DomKey::Constant<0xB1>::Character, ui::VKEY_UNKNOWN}},
|
||||
{true, ui::DomKey::FromCharacter(0xB1), ui::VKEY_UNKNOWN},
|
||||
{true, ui::DomKey::FromCharacter(0xB1), ui::VKEY_UNKNOWN}},
|
||||
};
|
||||
|
||||
for (const auto& it : kPrintableUsLayout) {
|
||||
|
@ -187,11 +187,9 @@ void TestLookup(const char* name, KeyboardLayoutEngine* engine) {
|
||||
KeyboardCode output_keycode;
|
||||
char16_t output_character;
|
||||
} kTestCases[] = {
|
||||
{DomCode::US_A, EF_NONE, DomKey::Constant<'a'>::Character, VKEY_A, 'a'},
|
||||
{DomCode::US_A, EF_SHIFT_DOWN, DomKey::Constant<'A'>::Character, VKEY_A,
|
||||
'A'},
|
||||
{DomCode::US_A, EF_CONTROL_DOWN, DomKey::Constant<'a'>::Character,
|
||||
VKEY_A, 1},
|
||||
{DomCode::US_A, EF_NONE, DomKey::FromCharacter('a'), VKEY_A, 'a'},
|
||||
{DomCode::US_A, EF_SHIFT_DOWN, DomKey::FromCharacter('A'), VKEY_A, 'A'},
|
||||
{DomCode::US_A, EF_CONTROL_DOWN, DomKey::FromCharacter('a'), VKEY_A, 1},
|
||||
{DomCode::LAUNCH_ASSISTANT, EF_NONE, DomKey::LAUNCH_ASSISTANT,
|
||||
VKEY_ASSISTANT, 0},
|
||||
};
|
||||
|
Reference in New Issue
Block a user