예제 #1
0
        public override void OnBeforeContextMenu(IWebBrowser browserControl, IBrowser browser, IFrame frame, IContextMenuParams parameters, IMenuModel model)
        {
            model.Clear();

            if (parameters.TypeFlags.HasFlag(ContextMenuType.Selection))
            {
                model.AddItem(CefMenuCommand.Copy, "Copy");
                model.AddSeparator();
            }

            base.OnBeforeContextMenu(browserControl, browser, frame, parameters, model);

            if (enableCustomMenu)
            {
                if (form.CanViewDetail)
                {
                    model.AddItem(MenuViewDetail, "View detail");
                }

                model.AddItem(MenuSkipTweet, "Skip tweet");
                model.AddCheckItem(MenuFreeze, "Freeze");
                model.SetChecked(MenuFreeze, form.FreezeTimer);

                if (!string.IsNullOrEmpty(form.CurrentTweetUrl))
                {
                    model.AddSeparator();
                    model.AddItem(MenuCopyTweetUrl, "Copy tweet address");

                    if (!string.IsNullOrEmpty(form.CurrentQuoteUrl))
                    {
                        model.AddItem(MenuCopyQuotedTweetUrl, "Copy quoted tweet address");
                    }
                }
            }

            if (HasDevTools)
            {
                AddSeparator(model);
                AddDebugMenuItems(model);
            }

            RemoveSeparatorIfLast(model);

            form.InvokeAsyncSafe(() => {
                form.ContextMenuOpen = true;
                form.TriggerAnalyticsEvent(AnalyticsFile.Event.NotificationContextMenu);
            });
        }
예제 #2
0
        public override void OnBeforeContextMenu(IWebBrowser browserControl, IBrowser browser, IFrame frame, IContextMenuParams parameters, IMenuModel model)
        {
            model.Clear();

            if (parameters.TypeFlags.HasFlag(ContextMenuType.Selection))
            {
                model.AddItem(CefMenuCommand.Copy, "Copy");
                model.AddSeparator();
            }

            base.OnBeforeContextMenu(browserControl, browser, frame, parameters, model);

            if (enableCustomMenu)
            {
                model.AddItem((CefMenuCommand)MenuSkipTweet, "Skip tweet");
                model.AddCheckItem((CefMenuCommand)MenuFreeze, "Freeze");
                model.SetChecked((CefMenuCommand)MenuFreeze, form.FreezeTimer);
                model.AddSeparator();

                if (!string.IsNullOrEmpty(form.CurrentTweetUrl))
                {
                    model.AddItem((CefMenuCommand)MenuCopyTweetUrl, "Copy tweet address");

                    if (!string.IsNullOrEmpty(form.CurrentQuoteUrl))
                    {
                        model.AddItem((CefMenuCommand)MenuCopyQuotedTweetUrl, "Copy quoted tweet address");
                    }

                    model.AddSeparator();
                }
            }

            #if DEBUG
            AddDebugMenuItems(model);
            #endif

            RemoveSeparatorIfLast(model);

            form.InvokeAsyncSafe(() => form.ContextMenuOpen = true);
        }
예제 #3
0
 private void TriggerKeyboardShortcutAnalytics()
 {
     notification.InvokeAsyncSafe(notification.AnalyticsFile.NotificationKeyboardShortcuts.Trigger);
 }
예제 #4
0
 public override void OnBeforeContextMenu(IWebBrowser browserControl, IBrowser browser, IFrame frame, IContextMenuParams parameters, IMenuModel model)
 {
     base.OnBeforeContextMenu(browserControl, browser, frame, parameters, model);
     form.InvokeAsyncSafe(() => form.ContextMenuOpen = true);
 }
예제 #5
0
 private void TriggerKeyboardShortcutAnalytics()
 {
     notification.InvokeAsyncSafe(() => notification.TriggerAnalyticsEvent(AnalyticsFile.Event.NotificationKeyboardShortcut));
 }