private void InitializeShortcuts()
{
this.shortcutCommands = new[]
{
// リストのカーソル移動関係(上下キー、PageUp/Downに該当)
ShortcutCommand.Create(Keys.J, Keys.Control | Keys.J, Keys.Shift | Keys.J, Keys.Control | Keys.Shift | Keys.J)
.FocusedOn(FocusedControl.ListTab)
.Do(() => SendKeys.Send("{DOWN}")),
ShortcutCommand.Create(Keys.K, Keys.Control | Keys.K, Keys.Shift | Keys.K, Keys.Control | Keys.Shift | Keys.K)
.FocusedOn(FocusedControl.ListTab)
.Do(() => SendKeys.Send("{UP}")),
ShortcutCommand.Create(Keys.F, Keys.Shift | Keys.F)
.FocusedOn(FocusedControl.ListTab)
.Do(() => SendKeys.Send("{PGDN}")),
ShortcutCommand.Create(Keys.B, Keys.Shift | Keys.B)
.FocusedOn(FocusedControl.ListTab)
.Do(() => SendKeys.Send("{PGUP}")),
ShortcutCommand.Create(Keys.F1)
.Do(() => this.OpenApplicationWebsite()),
ShortcutCommand.Create(Keys.F3)
.Do(() => this.MenuItemSearchNext_Click(null, null)),
ShortcutCommand.Create(Keys.F5)
.Do(() => this.DoRefresh()),
ShortcutCommand.Create(Keys.F6)
.Do(() => this.GetReplyAsync()),
ShortcutCommand.Create(Keys.F7)
.Do(() => this.GetDirectMessagesAsync()),
ShortcutCommand.Create(Keys.Space, Keys.ProcessKey)
.NotFocusedOn(FocusedControl.StatusText)
.Do(() => { this._anchorFlag = false; this.JumpUnreadMenuItem_Click(null, null); }),
ShortcutCommand.Create(Keys.G)
.NotFocusedOn(FocusedControl.StatusText)
.Do(() => { this._anchorFlag = false; this.ShowRelatedStatusesMenuItem_Click(null, null); }),
ShortcutCommand.Create(Keys.Right, Keys.N)
.FocusedOn(FocusedControl.ListTab)
.Do(() => this.GoRelPost(forward: true)),
ShortcutCommand.Create(Keys.Left, Keys.P)
.FocusedOn(FocusedControl.ListTab)
.Do(() => this.GoRelPost(forward: false)),
ShortcutCommand.Create(Keys.OemPeriod)
.FocusedOn(FocusedControl.ListTab)
.Do(() => this.GoAnchor()),
ShortcutCommand.Create(Keys.I)
.FocusedOn(FocusedControl.ListTab)
.OnlyWhen(() => this.StatusText.Enabled)
.Do(() => this.StatusText.Focus()),
ShortcutCommand.Create(Keys.Enter)
.FocusedOn(FocusedControl.ListTab)
.Do(() => this.MakeReplyOrDirectStatus()),
ShortcutCommand.Create(Keys.R)
.FocusedOn(FocusedControl.ListTab)
.Do(() => this.DoRefresh()),
ShortcutCommand.Create(Keys.L)
.FocusedOn(FocusedControl.ListTab)
.Do(() => { this._anchorFlag = false; this.GoPost(forward: true); }),
ShortcutCommand.Create(Keys.H)
.FocusedOn(FocusedControl.ListTab)
.Do(() => { this._anchorFlag = false; this.GoPost(forward: false); }),
ShortcutCommand.Create(Keys.Z, Keys.Oemcomma)
.FocusedOn(FocusedControl.ListTab)
.Do(() => { this._anchorFlag = false; this.MoveTop(); }),
ShortcutCommand.Create(Keys.S)
.FocusedOn(FocusedControl.ListTab)
.Do(() => { this._anchorFlag = false; this.GoNextTab(forward: true); }),
ShortcutCommand.Create(Keys.A)
.FocusedOn(FocusedControl.ListTab)
.Do(() => { this._anchorFlag = false; this.GoNextTab(forward: false); }),
// ] in_reply_to参照元へ戻る
ShortcutCommand.Create(Keys.Oem4)
.FocusedOn(FocusedControl.ListTab)
.Do(() => { this._anchorFlag = false; return this.GoInReplyToPostTree(); }),
// [ in_reply_toへジャンプ
ShortcutCommand.Create(Keys.Oem6)
.FocusedOn(FocusedControl.ListTab)
.Do(() => { this._anchorFlag = false; this.GoBackInReplyToPostTree(); }),
ShortcutCommand.Create(Keys.Escape)
.FocusedOn(FocusedControl.ListTab)
.Do(() => {
this._anchorFlag = false;
if (ListTab.SelectedTab != null)
{
var tabtype = _statuses.Tabs[ListTab.SelectedTab.Text].TabType;
if (tabtype == MyCommon.TabUsageType.Related || tabtype == MyCommon.TabUsageType.UserTimeline || tabtype == MyCommon.TabUsageType.PublicSearch || tabtype == MyCommon.TabUsageType.SearchResults)
{
var relTp = ListTab.SelectedTab;
RemoveSpecifiedTab(relTp.Text, false);
SaveConfigsTabs();
}
}
}),
// 上下キー, PageUp/Downキー, Home/Endキー は既定の動作を残しつつアンカー初期化
ShortcutCommand.Create(Keys.Up, Keys.Down, Keys.PageUp, Keys.PageDown, Keys.Home, Keys.End)
.FocusedOn(FocusedControl.ListTab)
.Do(() => this._anchorFlag = false, preventDefault: false),
// PreviewKeyDownEventArgs.IsInputKey を true にしてスクロールを発生させる
ShortcutCommand.Create(Keys.Up, Keys.Down)
.FocusedOn(FocusedControl.PostBrowser)
.Do(() => { }),
ShortcutCommand.Create(Keys.Control | Keys.R)
.Do(() => this.MakeReplyOrDirectStatus(isAuto: false, isReply: true)),
ShortcutCommand.Create(Keys.Control | Keys.D)
.Do(() => this.doStatusDelete()),
ShortcutCommand.Create(Keys.Control | Keys.M)
.Do(() => this.MakeReplyOrDirectStatus(isAuto: false, isReply: false)),
ShortcutCommand.Create(Keys.Control | Keys.S)
.Do(() => this.FavoriteChange(FavAdd: true)),
ShortcutCommand.Create(Keys.Control | Keys.I)
.Do(() => this.doRepliedStatusOpen()),
ShortcutCommand.Create(Keys.Control | Keys.Q)
.Do(() => this.doQuoteOfficial()),
ShortcutCommand.Create(Keys.Control | Keys.B)
.Do(() => this.ReadedStripMenuItem_Click(null, null)),
ShortcutCommand.Create(Keys.Control | Keys.T)
.Do(() => this.HashManageMenuItem_Click(null, null)),
ShortcutCommand.Create(Keys.Control | Keys.L)
.Do(() => this.UrlConvertAutoToolStripMenuItem_Click(null, null)),
ShortcutCommand.Create(Keys.Control | Keys.Y)
.NotFocusedOn(FocusedControl.PostBrowser)
.Do(() => this.MultiLineMenuItem_Click(null, null)),
ShortcutCommand.Create(Keys.Control | Keys.F)
.Do(() => this.MenuItemSubSearch_Click(null, null)),
ShortcutCommand.Create(Keys.Control | Keys.U)
.Do(() => this.ShowUserTimeline()),
ShortcutCommand.Create(Keys.Control | Keys.H)
.Do(() => this.MoveToHomeToolStripMenuItem_Click(null, null)),
ShortcutCommand.Create(Keys.Control | Keys.G)
.Do(() => this.MoveToFavToolStripMenuItem_Click(null, null)),
ShortcutCommand.Create(Keys.Control | Keys.O)
.Do(() => this.StatusOpenMenuItem_Click(null, null)),
ShortcutCommand.Create(Keys.Control | Keys.E)
.Do(() => this.OpenURLMenuItem_Click(null, null)),
ShortcutCommand.Create(Keys.Control | Keys.Home, Keys.Control | Keys.End)
.FocusedOn(FocusedControl.ListTab)
.Do(() => this._colorize = true, preventDefault: false),
ShortcutCommand.Create(Keys.Control | Keys.N)
.FocusedOn(FocusedControl.ListTab)
.Do(() => this.GoNextTab(forward: true)),
ShortcutCommand.Create(Keys.Control | Keys.P)
.FocusedOn(FocusedControl.ListTab)
.Do(() => this.GoNextTab(forward: false)),
ShortcutCommand.Create(Keys.Control | Keys.C, Keys.Control | Keys.Insert)
.FocusedOn(FocusedControl.ListTab)
.Do(() => this.CopyStot()),
// タブダイレクト選択(Ctrl+1~8,Ctrl+9)
ShortcutCommand.Create(Keys.Control | Keys.D1)
.FocusedOn(FocusedControl.ListTab)
.OnlyWhen(() => this.ListTab.TabPages.Count >= 1)
.Do(() => this.ListTab.SelectedIndex = 0),
ShortcutCommand.Create(Keys.Control | Keys.D2)
.FocusedOn(FocusedControl.ListTab)
.OnlyWhen(() => this.ListTab.TabPages.Count >= 2)
.Do(() => this.ListTab.SelectedIndex = 1),
ShortcutCommand.Create(Keys.Control | Keys.D3)
.FocusedOn(FocusedControl.ListTab)
.OnlyWhen(() => this.ListTab.TabPages.Count >= 3)
.Do(() => this.ListTab.SelectedIndex = 2),
ShortcutCommand.Create(Keys.Control | Keys.D4)
.FocusedOn(FocusedControl.ListTab)
.OnlyWhen(() => this.ListTab.TabPages.Count >= 4)
.Do(() => this.ListTab.SelectedIndex = 3),
ShortcutCommand.Create(Keys.Control | Keys.D5)
.FocusedOn(FocusedControl.ListTab)
.OnlyWhen(() => this.ListTab.TabPages.Count >= 5)
.Do(() => this.ListTab.SelectedIndex = 4),
ShortcutCommand.Create(Keys.Control | Keys.D6)
.FocusedOn(FocusedControl.ListTab)
.OnlyWhen(() => this.ListTab.TabPages.Count >= 6)
.Do(() => this.ListTab.SelectedIndex = 5),
ShortcutCommand.Create(Keys.Control | Keys.D7)
.FocusedOn(FocusedControl.ListTab)
.OnlyWhen(() => this.ListTab.TabPages.Count >= 7)
.Do(() => this.ListTab.SelectedIndex = 6),
ShortcutCommand.Create(Keys.Control | Keys.D8)
.FocusedOn(FocusedControl.ListTab)
.OnlyWhen(() => this.ListTab.TabPages.Count >= 8)
.Do(() => this.ListTab.SelectedIndex = 7),
ShortcutCommand.Create(Keys.Control | Keys.D9)
.FocusedOn(FocusedControl.ListTab)
.Do(() => this.ListTab.SelectedIndex = this.ListTab.TabPages.Count - 1),
ShortcutCommand.Create(Keys.Control | Keys.A)
.FocusedOn(FocusedControl.StatusText)
.Do(() => this.StatusText.SelectAll()),
ShortcutCommand.Create(Keys.Control | Keys.V)
.FocusedOn(FocusedControl.StatusText)
.Do(() => this.ProcClipboardFromStatusTextWhenCtrlPlusV()),
ShortcutCommand.Create(Keys.Control | Keys.Up)
.FocusedOn(FocusedControl.StatusText)
.Do(() => {
if (!string.IsNullOrWhiteSpace(StatusText.Text))
{
var inReplyToStatusId = this.inReplyTo?.Item1;
var inReplyToScreenName = this.inReplyTo?.Item2;
_history[_hisIdx] = new PostingStatus(StatusText.Text, inReplyToStatusId, inReplyToScreenName);
}
_hisIdx -= 1;
if (_hisIdx < 0) _hisIdx = 0;
var historyItem = this._history[this._hisIdx];
StatusText.Text = historyItem.status;
StatusText.SelectionStart = StatusText.Text.Length;
if (historyItem.inReplyToId != null)
this.inReplyTo = Tuple.Create(historyItem.inReplyToId.Value, historyItem.inReplyToName);
else
this.inReplyTo = null;
}),
ShortcutCommand.Create(Keys.Control | Keys.Down)
.FocusedOn(FocusedControl.StatusText)
.Do(() => {
if (!string.IsNullOrWhiteSpace(StatusText.Text))
{
var inReplyToStatusId = this.inReplyTo?.Item1;
var inReplyToScreenName = this.inReplyTo?.Item2;
_history[_hisIdx] = new PostingStatus(StatusText.Text, inReplyToStatusId, inReplyToScreenName);
}
_hisIdx += 1;
if (_hisIdx > _history.Count - 1) _hisIdx = _history.Count - 1;
var historyItem = this._history[this._hisIdx];
StatusText.Text = historyItem.status;
StatusText.SelectionStart = StatusText.Text.Length;
if (historyItem.inReplyToId != null)
this.inReplyTo = Tuple.Create(historyItem.inReplyToId.Value, historyItem.inReplyToName);
else
this.inReplyTo = null;
}),
ShortcutCommand.Create(Keys.Control | Keys.PageUp, Keys.Control | Keys.P)
.FocusedOn(FocusedControl.StatusText)
.Do(() => {
if (ListTab.SelectedIndex == 0)
{
ListTab.SelectedIndex = ListTab.TabCount - 1;
}
else
{
ListTab.SelectedIndex -= 1;
}
StatusText.Focus();
}),
ShortcutCommand.Create(Keys.Control | Keys.PageDown, Keys.Control | Keys.N)
.FocusedOn(FocusedControl.StatusText)
.Do(() => {
if (ListTab.SelectedIndex == ListTab.TabCount - 1)
{
ListTab.SelectedIndex = 0;
}
else
{
ListTab.SelectedIndex += 1;
}
StatusText.Focus();
}),
ShortcutCommand.Create(Keys.Control | Keys.Y)
.FocusedOn(FocusedControl.PostBrowser)
.Do(() => {
MultiLineMenuItem.Checked = !MultiLineMenuItem.Checked;
MultiLineMenuItem_Click(null, null);
}),
ShortcutCommand.Create(Keys.Shift | Keys.F3)
.Do(() => this.MenuItemSearchPrev_Click(null, null)),
ShortcutCommand.Create(Keys.Shift | Keys.F5)
.Do(() => this.DoRefreshMore()),
ShortcutCommand.Create(Keys.Shift | Keys.F6)
.Do(() => this.GetReplyAsync(loadMore: true)),
ShortcutCommand.Create(Keys.Shift | Keys.F7)
.Do(() => this.GetDirectMessagesAsync(loadMore: true)),
ShortcutCommand.Create(Keys.Shift | Keys.R)
.NotFocusedOn(FocusedControl.StatusText)
.Do(() => this.DoRefreshMore()),
ShortcutCommand.Create(Keys.Shift | Keys.H)
.FocusedOn(FocusedControl.ListTab)
.Do(() => this.GoTopEnd(GoTop: true)),
ShortcutCommand.Create(Keys.Shift | Keys.L)
.FocusedOn(FocusedControl.ListTab)
.Do(() => this.GoTopEnd(GoTop: false)),
ShortcutCommand.Create(Keys.Shift | Keys.M)
.FocusedOn(FocusedControl.ListTab)
.Do(() => this.GoMiddle()),
ShortcutCommand.Create(Keys.Shift | Keys.G)
.FocusedOn(FocusedControl.ListTab)
.Do(() => this.GoLast()),
ShortcutCommand.Create(Keys.Shift | Keys.Z)
.FocusedOn(FocusedControl.ListTab)
.Do(() => this.MoveMiddle()),
ShortcutCommand.Create(Keys.Shift | Keys.Oem4)
.FocusedOn(FocusedControl.ListTab)
.Do(() => this.GoBackInReplyToPostTree(parallel: true, isForward: false)),
ShortcutCommand.Create(Keys.Shift | Keys.Oem6)
.FocusedOn(FocusedControl.ListTab)
.Do(() => this.GoBackInReplyToPostTree(parallel: true, isForward: true)),
// お気に入り前後ジャンプ(SHIFT+N←/P→)
ShortcutCommand.Create(Keys.Shift | Keys.Right, Keys.Shift | Keys.N)
.FocusedOn(FocusedControl.ListTab)
.Do(() => this.GoFav(forward: true)),
// お気に入り前後ジャンプ(SHIFT+N←/P→)
ShortcutCommand.Create(Keys.Shift | Keys.Left, Keys.Shift | Keys.P)
.FocusedOn(FocusedControl.ListTab)
.Do(() => this.GoFav(forward: false)),
ShortcutCommand.Create(Keys.Shift | Keys.Space)
.FocusedOn(FocusedControl.ListTab)
.Do(() => this.GoBackSelectPostChain()),
ShortcutCommand.Create(Keys.Alt | Keys.R)
.Do(() => this.doReTweetOfficial(isConfirm: true)),
ShortcutCommand.Create(Keys.Alt | Keys.P)
.OnlyWhen(() => this._curPost != null)
.Do(() => this.doShowUserStatus(_curPost.ScreenName, ShowInputDialog: false)),
ShortcutCommand.Create(Keys.Alt | Keys.Up)
.Do(() => this.tweetDetailsView.ScrollDownPostBrowser(forward: false)),
ShortcutCommand.Create(Keys.Alt | Keys.Down)
.Do(() => this.tweetDetailsView.ScrollDownPostBrowser(forward: true)),
ShortcutCommand.Create(Keys.Alt | Keys.PageUp)
.Do(() => this.tweetDetailsView.PageDownPostBrowser(forward: false)),
ShortcutCommand.Create(Keys.Alt | Keys.PageDown)
.Do(() => this.tweetDetailsView.PageDownPostBrowser(forward: true)),
// 別タブの同じ書き込みへ(ALT+←/→)
ShortcutCommand.Create(Keys.Alt | Keys.Right)
.FocusedOn(FocusedControl.ListTab)
.Do(() => this.GoSamePostToAnotherTab(left: false)),
ShortcutCommand.Create(Keys.Alt | Keys.Left)
.FocusedOn(FocusedControl.ListTab)
.Do(() => this.GoSamePostToAnotherTab(left: true)),
ShortcutCommand.Create(Keys.Control | Keys.Shift | Keys.R)
.Do(() => this.MakeReplyOrDirectStatus(isAuto: false, isReply: true, isAll: true)),
ShortcutCommand.Create(Keys.Control | Keys.Shift | Keys.C, Keys.Control | Keys.Shift | Keys.Insert)
.Do(() => this.CopyIdUri()),
ShortcutCommand.Create(Keys.Control | Keys.Shift | Keys.F)
.OnlyWhen(() => this.ListTab.SelectedTab != null &&
this._statuses.Tabs[this.ListTab.SelectedTab.Text].TabType == MyCommon.TabUsageType.PublicSearch)
.Do(() => this.ListTab.SelectedTab.Controls["panelSearch"].Controls["comboSearch"].Focus()),
ShortcutCommand.Create(Keys.Control | Keys.Shift | Keys.S)
.Do(() => this.FavoriteChange(FavAdd: false)),
ShortcutCommand.Create(Keys.Control | Keys.Shift | Keys.B)
.Do(() => this.UnreadStripMenuItem_Click(null, null)),
ShortcutCommand.Create(Keys.Control | Keys.Shift | Keys.T)
.Do(() => this.HashToggleMenuItem_Click(null, null)),
ShortcutCommand.Create(Keys.Control | Keys.Shift | Keys.P)
.Do(() => this.ImageSelectMenuItem_Click(null, null)),
ShortcutCommand.Create(Keys.Control | Keys.Shift | Keys.H)
.Do(() => this.doMoveToRTHome()),
ShortcutCommand.Create(Keys.Control | Keys.Shift | Keys.O)
.Do(() => this.FavorareMenuItem_Click(null, null)),
ShortcutCommand.Create(Keys.Control | Keys.Shift | Keys.Up)
.FocusedOn(FocusedControl.StatusText)
.Do(() => {
if (_curList != null && _curList.VirtualListSize != 0 &&
_curList.SelectedIndices.Count > 0 && _curList.SelectedIndices[0] > 0)
{
var idx = _curList.SelectedIndices[0] - 1;
SelectListItem(_curList, idx);
_curList.EnsureVisible(idx);
}
}),
ShortcutCommand.Create(Keys.Control | Keys.Shift | Keys.Down)
.FocusedOn(FocusedControl.StatusText)
.Do(() => {
if (_curList != null && _curList.VirtualListSize != 0 && _curList.SelectedIndices.Count > 0
&& _curList.SelectedIndices[0] < _curList.VirtualListSize - 1)
{
var idx = _curList.SelectedIndices[0] + 1;
SelectListItem(_curList, idx);
_curList.EnsureVisible(idx);
}
}),
ShortcutCommand.Create(Keys.Control | Keys.Shift | Keys.Space)
.FocusedOn(FocusedControl.StatusText)
.Do(() => {
if (StatusText.SelectionStart > 0)
{
int endidx = StatusText.SelectionStart - 1;
string startstr = "";
for (int i = StatusText.SelectionStart - 1; i >= 0; i--)
{
char c = StatusText.Text[i];
if (Char.IsLetterOrDigit(c) || c == '_')
{
continue;
}
if (c == '@')
{
startstr = StatusText.Text.Substring(i + 1, endidx - i);
int cnt = AtIdSupl.ItemCount;
ShowSuplDialog(StatusText, AtIdSupl, startstr.Length + 1, startstr);
if (AtIdSupl.ItemCount != cnt) ModifySettingAtId = true;
}
else if (c == '#')
{
startstr = StatusText.Text.Substring(i + 1, endidx - i);
ShowSuplDialog(StatusText, HashSupl, startstr.Length + 1, startstr);
}
else
{
break;
}
}
}
}),
// ソートダイレクト選択(Ctrl+Shift+1~8,Ctrl+Shift+9)
ShortcutCommand.Create(Keys.Control | Keys.Shift | Keys.D1)
.FocusedOn(FocusedControl.ListTab)
.Do(() => this.SetSortColumnByDisplayIndex(0)),
ShortcutCommand.Create(Keys.Control | Keys.Shift | Keys.D2)
.FocusedOn(FocusedControl.ListTab)
.Do(() => this.SetSortColumnByDisplayIndex(1)),
ShortcutCommand.Create(Keys.Control | Keys.Shift | Keys.D3)
.FocusedOn(FocusedControl.ListTab)
.Do(() => this.SetSortColumnByDisplayIndex(2)),
ShortcutCommand.Create(Keys.Control | Keys.Shift | Keys.D4)
.FocusedOn(FocusedControl.ListTab)
.Do(() => this.SetSortColumnByDisplayIndex(3)),
ShortcutCommand.Create(Keys.Control | Keys.Shift | Keys.D5)
.FocusedOn(FocusedControl.ListTab)
.Do(() => this.SetSortColumnByDisplayIndex(4)),
ShortcutCommand.Create(Keys.Control | Keys.Shift | Keys.D6)
.FocusedOn(FocusedControl.ListTab)
.Do(() => this.SetSortColumnByDisplayIndex(5)),
ShortcutCommand.Create(Keys.Control | Keys.Shift | Keys.D7)
.FocusedOn(FocusedControl.ListTab)
.Do(() => this.SetSortColumnByDisplayIndex(6)),
ShortcutCommand.Create(Keys.Control | Keys.Shift | Keys.D8)
.FocusedOn(FocusedControl.ListTab)
.Do(() => this.SetSortColumnByDisplayIndex(7)),
ShortcutCommand.Create(Keys.Control | Keys.Shift | Keys.D9)
.FocusedOn(FocusedControl.ListTab)
.Do(() => this.SetSortLastColumn()),
ShortcutCommand.Create(Keys.Control | Keys.Alt | Keys.S)
.Do(() => this.FavoritesRetweetOfficial()),
ShortcutCommand.Create(Keys.Control | Keys.Alt | Keys.R)
.Do(() => this.FavoritesRetweetUnofficial()),
ShortcutCommand.Create(Keys.Control | Keys.Alt | Keys.H)
.Do(() => this.OpenUserAppointUrl()),
ShortcutCommand.Create(Keys.Alt | Keys.Shift | Keys.R)
.FocusedOn(FocusedControl.PostBrowser)
.Do(() => this.doReTweetUnofficial()),
ShortcutCommand.Create(Keys.Alt | Keys.Shift | Keys.T)
.OnlyWhen(() => this.ExistCurrentPost)
.Do(() => this.tweetDetailsView.DoTranslation()),
ShortcutCommand.Create(Keys.Alt | Keys.Shift | Keys.R)
.Do(() => this.doReTweetUnofficial()),
ShortcutCommand.Create(Keys.Alt | Keys.Shift | Keys.C, Keys.Alt | Keys.Shift | Keys.Insert)
.Do(() => this.CopyUserId()),
ShortcutCommand.Create(Keys.Alt | Keys.Shift | Keys.Up)
.Do(() => this.tweetThumbnail1.ScrollUp()),
ShortcutCommand.Create(Keys.Alt | Keys.Shift | Keys.Down)
.Do(() => this.tweetThumbnail1.ScrollDown()),
ShortcutCommand.Create(Keys.Alt | Keys.Shift | Keys.Enter)
.FocusedOn(FocusedControl.ListTab)
.OnlyWhen(() => !this.SplitContainer3.Panel2Collapsed)
.Do(() => this.OpenThumbnailPicture(this.tweetThumbnail1.Thumbnail)),
};
}