Replaces `KeyModifiers` with the pretty much equivalent `VirtualKeyModifiers` enum in winrt. After doing this I noticed #10593 which changes the KeyChords a lot, but it seems these PRs are still compatible The issue also mentions replacing Vkey with `Windows::System::VirtualKey`, but I chose not to because that enum only includes a subset of the keys terminal supports here (no VK_OEM_* keys) ## Validation Steps Performed Changed key bind in config, and confirmed it still works after restarting terminal Closes #877
62 lines
1.7 KiB
C++
62 lines
1.7 KiB
C++
// Copyright (c) Microsoft Corporation.
|
|
// Licensed under the MIT license.
|
|
|
|
#include "pch.h"
|
|
#include "KeyChord.h"
|
|
|
|
#include "KeyChord.g.cpp"
|
|
|
|
using VirtualKeyModifiers = winrt::Windows::System::VirtualKeyModifiers;
|
|
|
|
namespace winrt::Microsoft::Terminal::Control::implementation
|
|
{
|
|
KeyChord::KeyChord() noexcept :
|
|
_modifiers{ 0 },
|
|
_vkey{ 0 }
|
|
{
|
|
}
|
|
|
|
KeyChord::KeyChord(bool ctrl, bool alt, bool shift, int32_t vkey) noexcept :
|
|
_modifiers{ (ctrl ? VirtualKeyModifiers::Control : VirtualKeyModifiers::None) |
|
|
(alt ? VirtualKeyModifiers::Menu : VirtualKeyModifiers::None) |
|
|
(shift ? VirtualKeyModifiers::Shift : VirtualKeyModifiers::None) },
|
|
_vkey{ vkey }
|
|
{
|
|
}
|
|
|
|
KeyChord::KeyChord(bool ctrl, bool alt, bool shift, bool win, int32_t vkey) noexcept :
|
|
_modifiers{ (ctrl ? VirtualKeyModifiers::Control : VirtualKeyModifiers::None) |
|
|
(alt ? VirtualKeyModifiers::Menu : VirtualKeyModifiers::None) |
|
|
(shift ? VirtualKeyModifiers::Shift : VirtualKeyModifiers::None) |
|
|
(win ? VirtualKeyModifiers::Windows : VirtualKeyModifiers::None) },
|
|
_vkey{ vkey }
|
|
{
|
|
}
|
|
|
|
KeyChord::KeyChord(VirtualKeyModifiers const& modifiers, int32_t vkey) noexcept :
|
|
_modifiers{ modifiers },
|
|
_vkey{ vkey }
|
|
{
|
|
}
|
|
|
|
VirtualKeyModifiers KeyChord::Modifiers() noexcept
|
|
{
|
|
return _modifiers;
|
|
}
|
|
|
|
void KeyChord::Modifiers(VirtualKeyModifiers const& value) noexcept
|
|
{
|
|
_modifiers = value;
|
|
}
|
|
|
|
int32_t KeyChord::Vkey() noexcept
|
|
{
|
|
return _vkey;
|
|
}
|
|
|
|
void KeyChord::Vkey(int32_t value) noexcept
|
|
{
|
|
_vkey = value;
|
|
}
|
|
}
|