f74a9d3e0b
* add shortcut alt-* for select tab * all right, 0 for 10th
149 lines
5.9 KiB
C++
149 lines
5.9 KiB
C++
// Copyright (c) Microsoft Corporation.
|
|
// Licensed under the MIT license.
|
|
|
|
#include "pch.h"
|
|
#include "AppKeyBindings.h"
|
|
|
|
using namespace winrt::Microsoft::Terminal;
|
|
|
|
namespace winrt::TerminalApp::implementation
|
|
{
|
|
void AppKeyBindings::SetKeyBinding(TerminalApp::ShortcutAction const& action,
|
|
Settings::KeyChord const& chord)
|
|
{
|
|
_keyShortcuts[chord] = action;
|
|
}
|
|
|
|
bool AppKeyBindings::TryKeyChord(Settings::KeyChord const& kc)
|
|
{
|
|
const auto keyIter = _keyShortcuts.find(kc);
|
|
if (keyIter != _keyShortcuts.end())
|
|
{
|
|
const auto action = keyIter->second;
|
|
return _DoAction(action);
|
|
}
|
|
return false;
|
|
}
|
|
|
|
bool AppKeyBindings::_DoAction(ShortcutAction action)
|
|
{
|
|
switch (action)
|
|
{
|
|
case ShortcutAction::CopyText:
|
|
_CopyTextHandlers();
|
|
return true;
|
|
case ShortcutAction::PasteText:
|
|
_PasteTextHandlers();
|
|
return true;
|
|
case ShortcutAction::NewTab:
|
|
_NewTabHandlers();
|
|
return true;
|
|
|
|
case ShortcutAction::NewTabProfile0:
|
|
_NewTabWithProfileHandlers(0);
|
|
return true;
|
|
case ShortcutAction::NewTabProfile1:
|
|
_NewTabWithProfileHandlers(1);
|
|
return true;
|
|
case ShortcutAction::NewTabProfile2:
|
|
_NewTabWithProfileHandlers(2);
|
|
return true;
|
|
case ShortcutAction::NewTabProfile3:
|
|
_NewTabWithProfileHandlers(3);
|
|
return true;
|
|
case ShortcutAction::NewTabProfile4:
|
|
_NewTabWithProfileHandlers(4);
|
|
return true;
|
|
case ShortcutAction::NewTabProfile5:
|
|
_NewTabWithProfileHandlers(5);
|
|
return true;
|
|
case ShortcutAction::NewTabProfile6:
|
|
_NewTabWithProfileHandlers(6);
|
|
return true;
|
|
case ShortcutAction::NewTabProfile7:
|
|
_NewTabWithProfileHandlers(7);
|
|
return true;
|
|
case ShortcutAction::NewTabProfile8:
|
|
_NewTabWithProfileHandlers(8);
|
|
return true;
|
|
case ShortcutAction::NewTabProfile9:
|
|
_NewTabWithProfileHandlers(9);
|
|
return true;
|
|
|
|
case ShortcutAction::NewWindow:
|
|
_NewWindowHandlers();
|
|
return true;
|
|
case ShortcutAction::CloseWindow:
|
|
_CloseWindowHandlers();
|
|
return true;
|
|
case ShortcutAction::CloseTab:
|
|
_CloseTabHandlers();
|
|
return true;
|
|
|
|
case ShortcutAction::ScrollUp:
|
|
_ScrollUpHandlers();
|
|
return true;
|
|
case ShortcutAction::ScrollDown:
|
|
_ScrollDownHandlers();
|
|
return true;
|
|
|
|
case ShortcutAction::NextTab:
|
|
_NextTabHandlers();
|
|
return true;
|
|
case ShortcutAction::PrevTab:
|
|
_PrevTabHandlers();
|
|
return true;
|
|
|
|
case ShortcutAction::SwitchToTab0:
|
|
_SwitchToTabHandlers(0);
|
|
return true;
|
|
case ShortcutAction::SwitchToTab1:
|
|
_SwitchToTabHandlers(1);
|
|
return true;
|
|
case ShortcutAction::SwitchToTab2:
|
|
_SwitchToTabHandlers(2);
|
|
return true;
|
|
case ShortcutAction::SwitchToTab3:
|
|
_SwitchToTabHandlers(3);
|
|
return true;
|
|
case ShortcutAction::SwitchToTab4:
|
|
_SwitchToTabHandlers(4);
|
|
return true;
|
|
case ShortcutAction::SwitchToTab5:
|
|
_SwitchToTabHandlers(5);
|
|
return true;
|
|
case ShortcutAction::SwitchToTab6:
|
|
_SwitchToTabHandlers(6);
|
|
return true;
|
|
case ShortcutAction::SwitchToTab7:
|
|
_SwitchToTabHandlers(7);
|
|
return true;
|
|
case ShortcutAction::SwitchToTab8:
|
|
_SwitchToTabHandlers(8);
|
|
return true;
|
|
case ShortcutAction::SwitchToTab9:
|
|
_SwitchToTabHandlers(9);
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
// -------------------------------- Events ---------------------------------
|
|
DEFINE_EVENT(AppKeyBindings, CopyText, _CopyTextHandlers, TerminalApp::CopyTextEventArgs);
|
|
DEFINE_EVENT(AppKeyBindings, PasteText, _PasteTextHandlers, TerminalApp::PasteTextEventArgs);
|
|
DEFINE_EVENT(AppKeyBindings, NewTab, _NewTabHandlers, TerminalApp::NewTabEventArgs);
|
|
DEFINE_EVENT(AppKeyBindings, NewTabWithProfile, _NewTabWithProfileHandlers, TerminalApp::NewTabWithProfileEventArgs);
|
|
DEFINE_EVENT(AppKeyBindings, NewWindow, _NewWindowHandlers, TerminalApp::NewWindowEventArgs);
|
|
DEFINE_EVENT(AppKeyBindings, CloseWindow, _CloseWindowHandlers, TerminalApp::CloseWindowEventArgs);
|
|
DEFINE_EVENT(AppKeyBindings, CloseTab, _CloseTabHandlers, TerminalApp::CloseTabEventArgs);
|
|
DEFINE_EVENT(AppKeyBindings, SwitchToTab, _SwitchToTabHandlers, TerminalApp::SwitchToTabEventArgs);
|
|
DEFINE_EVENT(AppKeyBindings, NextTab, _NextTabHandlers, TerminalApp::NextTabEventArgs);
|
|
DEFINE_EVENT(AppKeyBindings, PrevTab, _PrevTabHandlers, TerminalApp::PrevTabEventArgs);
|
|
DEFINE_EVENT(AppKeyBindings, IncreaseFontSize, _IncreaseFontSizeHandlers, TerminalApp::IncreaseFontSizeEventArgs);
|
|
DEFINE_EVENT(AppKeyBindings, DecreaseFontSize, _DecreaseFontSizeHandlers, TerminalApp::DecreaseFontSizeEventArgs);
|
|
DEFINE_EVENT(AppKeyBindings, ScrollUp, _ScrollUpHandlers, TerminalApp::ScrollUpEventArgs);
|
|
DEFINE_EVENT(AppKeyBindings, ScrollDown, _ScrollDownHandlers, TerminalApp::ScrollDownEventArgs);
|
|
|
|
|
|
}
|