예제 #1
0
 private void RegisterKeyAssigns()
 {
     KeyAssignManager.RegisterActions(
         KeyAssignAction.Create("CloseInput", this.CloseInput),
         KeyAssignAction.Create("Post", this.InputCoreViewModel.Send),
         KeyAssignAction.Create("LoadStash", () =>
     {
         if (this.InputCoreViewModel.IsDraftsExisted)
         {
             this.InputCoreViewModel.DraftedInputs[0].Writeback();
         }
     }),
         KeyAssignAction.Create("Amend", this.InputCoreViewModel.AmendLastPosted),
         KeyAssignAction.Create("AttachImage", () =>
     {
         if (this.InputCoreViewModel.IsLocationAttached)
         {
             this.InputCoreViewModel.DetachImage();
         }
         else
         {
             this.InputCoreViewModel.AttachImage();
         }
     }),
         KeyAssignAction.Create("ToggleEscape", () =>
     {
         this.InputCoreViewModel.IsUrlAutoEsacpeEnabled = !this.InputCoreViewModel.IsUrlAutoEsacpeEnabled;
     }),
         KeyAssignAction.Create("SelectNextAccount", () => this.AccountSelectorViewModel.SelectNext()),
         KeyAssignAction.Create("SelectPreviousAccount", () => this.AccountSelectorViewModel.SelectPrev()),
         KeyAssignAction.Create("ClearSelectedAccounts", () => this.AccountSelectorViewModel.ClearAll()),
         KeyAssignAction.Create("SelectAllAccounts", () => this.AccountSelectorViewModel.SelectAll())
         );
 }
예제 #2
0
        private void RegisterEvents()
        {
            if (_isRegisteredEvents)
            {
                throw new InvalidOperationException();
            }
            _isRegisteredEvents = true;
            MainWindowModel.TimelineFocusRequested += this.MainWindowModelTimelineFocusRequested;
            // Timeline actions
            KeyAssignManager.RegisterActions(
                KeyAssignAction.Create("CreateTab", () => FocusedColumn.CreateNewTab()),
                KeyAssignAction.Create("ToggleFocus", () => ExecuteStatusAction(s => s.ToggleFocus())),
                KeyAssignAction.Create("ToggleSelect", () => ExecuteStatusAction(s => s.ToggleSelect())),
                KeyAssignAction.Create("ClearSelect", () => ExecuteTimelineAction(t => t.DeselectAll())),
                KeyAssignAction.Create("Favorite", () => ExecuteStatusAction(s => s.ToggleFavoriteImmediate())),
                KeyAssignAction.Create("FavoriteMany", () => ExecuteStatusAction(s => s.ToggleFavorite())),
                KeyAssignAction.Create("Retweet", () => ExecuteStatusAction(s => s.ToggleRetweetImmediate())),
                KeyAssignAction.Create("RetweetMany", () => ExecuteStatusAction(s => s.ToggleRetweet())),
                KeyAssignAction.Create("Quote", () => ExecuteStatusAction(s => s.Quote())),
                KeyAssignAction.Create("QuoteLink", () => ExecuteStatusAction(s => s.QuotePermalink())),
                KeyAssignAction.Create("SendDirectMessage", () => ExecuteStatusAction(s => s.DirectMessage())),
                KeyAssignAction.Create("Delete", () => ExecuteStatusAction(s => s.ConfirmDelete())),
                KeyAssignAction.Create("Copy", () => ExecuteStatusAction(s => s.CopyBody())),
                KeyAssignAction.Create("CopySTOT", () => ExecuteStatusAction(s => s.CopySTOT())),
                KeyAssignAction.Create("CopyPermalink", () => ExecuteStatusAction(s => s.CopyPermalink())),
                KeyAssignAction.Create("ShowUserProfile", () => ExecuteStatusAction(s => s.ShowUserProfile())),
                KeyAssignAction.Create("ShowRetweeterProfile", () => ExecuteStatusAction(s => s.ShowRetweeterProfile())),
                KeyAssignAction.Create("ShowRecipientProfile", () => ExecuteStatusAction(s => s.ShowRecipientProfile())),
                KeyAssignAction.Create("OpenWeb", () => ExecuteStatusAction(s => s.OpenWeb())),
                KeyAssignAction.Create("OpenFavstar", () => ExecuteStatusAction(s => s.OpenFavstar())),
                KeyAssignAction.Create("OpenUserDetailOnTwitter",
                                       () => ExecuteStatusAction(s => s.OpenUserDetailOnTwitter())),
                KeyAssignAction.Create("OpenUserFavstar", () => ExecuteStatusAction(s => s.OpenUserFavstar())),
                KeyAssignAction.Create("OpenUserTwilog", () => ExecuteStatusAction(s => s.OpenUserTwilog())),
                KeyAssignAction.Create("OpenSource", () => ExecuteStatusAction(s => s.OpenSourceLink())),

                KeyAssignAction.Create("ShowConversation", () => ExecuteStatusAction(s => s.ShowConversation())),
                KeyAssignAction.Create("MuteUser", () => ExecuteStatusAction(s => s.MuteUser())),
                KeyAssignAction.Create("MuteClient", () => ExecuteStatusAction(s => s.MuteClient())),
                KeyAssignAction.Create("ReportAsSpam", () => ExecuteStatusAction(s => s.ReportAsSpam())),
                KeyAssignAction.CreateWithArgumentOptional("Reply",
                                                           a => this.ExecuteStatusAction(s => s.SendReplyOrDirectMessage(a))),
                KeyAssignAction.CreateWithArgumentRequired("OpenUrl",
                                                           a => this.ExecuteStatusAction(s => s.OpenNthLink(a))),
                KeyAssignAction.CreateWithArgumentOptional("OpenThumbnail",
                                                           a => this.ExecuteStatusAction(s => s.OpenNthThumbnail(a)))
                );

            // Timeline argumentable actions
            // reply, favorite, retweet, quote
            // TODO
        }
예제 #3
0
 /// <summary>
 /// Register key assign events.
 /// </summary>
 public static void RegisterEvents()
 {
     MainWindowModel.TimelineFocusRequested += MainWindowModelTimelineFocusRequested;
     KeyAssignManager.RegisterActions(
         KeyAssignAction.Create("RestoreTab", ReviveTab),
         KeyAssignAction.Create("CloseTab", () =>
     {
         var ccolumn = Columns[CurrentFocusColumnIndex];
         if (ccolumn.Tabs.Count == 0)
         {
             return;
         }
         CloseTab(CurrentFocusColumnIndex, ccolumn.CurrentFocusTabIndex);
     }));
 }
예제 #4
0
        private static void RegisterKeyAssigns()
        {
            // Focus
            KeyAssignManager.RegisterActions(
                KeyAssignAction.Create("FocusToTimeline", () => SetFocusTo(FocusRequest.Timeline)),
                KeyAssignAction.Create("FocusToInput", () => SetFocusTo(FocusRequest.Input)),
                KeyAssignAction.Create("FocusToSearch", () => SetFocusTo(FocusRequest.Search)));

            // Timeline move
            KeyAssignManager.RegisterActions(
                KeyAssignAction.Create("SelectLeftColumn", () => SetTimelineFocusTo(TimelineFocusRequest.LeftColumn)),
                KeyAssignAction.Create("SelectRightColumn", () => SetTimelineFocusTo(TimelineFocusRequest.RightColumn)),
                KeyAssignAction.Create("SelectLeftTab", () => SetTimelineFocusTo(TimelineFocusRequest.LeftTab)),
                KeyAssignAction.Create("SelectRightTab", () => SetTimelineFocusTo(TimelineFocusRequest.RightTab)),
                KeyAssignAction.Create("MoveUp", () => SetTimelineFocusTo(TimelineFocusRequest.AboveStatus)),
                KeyAssignAction.Create("MoveDown", () => SetTimelineFocusTo(TimelineFocusRequest.BelowStatus)),
                KeyAssignAction.Create("MoveTop", () => SetTimelineFocusTo(TimelineFocusRequest.TopOfTimeline)),
                KeyAssignAction.Create("MoveBottom", () => SetTimelineFocusTo(TimelineFocusRequest.BottomOfTimeline)));
        }
예제 #5
0
 public AssignActionViewModel(KeyAssignAction action)
 {
     this._action = action;
 }