public override void OnBeforeContextMenu(IWebBrowser browserControl, IBrowser browser, IFrame frame, IContextMenuParams parameters, IMenuModel model) { if (!TwitterUrls.IsTweetDeck(frame.Url) || browser.IsLoading) { extraContext.Reset(); } base.OnBeforeContextMenu(browserControl, browser, frame, parameters, model); bool isSelecting = parameters.TypeFlags.HasFlag(ContextMenuType.Selection); bool isEditing = parameters.TypeFlags.HasFlag(ContextMenuType.Editable); if (!isSelecting && !isEditing) { AddSeparator(model); IMenuModel globalMenu = model.Count == 0 ? model : model.AddSubMenu(MenuGlobal, Program.BrandName); globalMenu.AddItem(CefMenuCommand.Reload, TitleReloadBrowser); globalMenu.AddCheckItem(MenuMute, TitleMuteNotifications); globalMenu.SetChecked(MenuMute, Config.MuteNotifications); globalMenu.AddSeparator(); globalMenu.AddItem(MenuSettings, TitleSettings); globalMenu.AddItem(MenuPlugins, TitlePlugins); globalMenu.AddItem(MenuAbout, TitleAboutProgram); AddDebugMenuItems(globalMenu); } }
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); }); }
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.CurrentUrl)) { model.AddItem((CefMenuCommand)MenuCopyTweetUrl, "Copy tweet address"); if (!string.IsNullOrEmpty(form.CurrentQuotedTweetUrl)) { model.AddItem((CefMenuCommand)MenuCopyQuotedTweetUrl, "Copy quoted tweet address"); } model.AddSeparator(); } } #if DEBUG AddDebugMenuItems(model); #endif RemoveSeparatorIfLast(model); form.InvokeSafe(() => form.ContextMenuOpen = true); }
public override void OnBeforeContextMenu(IWebBrowser browserControl, IBrowser browser, IFrame frame, IContextMenuParams parameters, IMenuModel model) { bool isSelecting = parameters.TypeFlags.HasFlag(ContextMenuType.Selection); bool isEditing = parameters.TypeFlags.HasFlag(ContextMenuType.Editable); model.Remove(CefMenuCommand.Back); model.Remove(CefMenuCommand.Forward); model.Remove(CefMenuCommand.Print); model.Remove(CefMenuCommand.ViewSource); RemoveSeparatorIfLast(model); if (isSelecting) { if (isEditing) { model.AddSeparator(); model.AddItem(MenuWriteApplyROT13, "Apply ROT13"); } model.AddSeparator(); } base.OnBeforeContextMenu(browserControl, browser, frame, parameters, model); if (isSelecting && !isEditing && TwitterUrls.IsTweetDeck(frame.Url)) { InsertSelectionSearchItem(model, MenuSearchInColumn, "Search in a column"); } if (Context.Types.HasFlag(ContextInfo.ContextType.Chirp) && !isSelecting && !isEditing) { model.AddItem(MenuOpenTweetUrl, "Open tweet in browser"); model.AddItem(MenuCopyTweetUrl, "Copy tweet address"); model.AddItem(MenuScreenshotTweet, "Screenshot tweet to clipboard"); if (!string.IsNullOrEmpty(Context.Chirp.QuoteUrl)) { model.AddSeparator(); model.AddItem(MenuOpenQuotedTweetUrl, "Open quoted tweet in browser"); model.AddItem(MenuCopyQuotedTweetUrl, "Copy quoted tweet address"); } model.AddSeparator(); } if (!isSelecting && !isEditing) { AddSeparator(model); IMenuModel globalMenu = model.Count == 0 ? model : model.AddSubMenu(MenuGlobal, Program.BrandName); globalMenu.AddItem(CefMenuCommand.Reload, TitleReloadBrowser); globalMenu.AddCheckItem(MenuMute, TitleMuteNotifications); globalMenu.SetChecked(MenuMute, Config.MuteNotifications); globalMenu.AddSeparator(); globalMenu.AddItem(MenuSettings, TitleSettings); globalMenu.AddItem(MenuPlugins, TitlePlugins); globalMenu.AddItem(MenuAbout, TitleAboutProgram); AddDebugMenuItems(globalMenu); } RemoveSeparatorIfLast(model); form.InvokeAsyncSafe(form.AnalyticsFile.BrowserContextMenus.Trigger); }
public override void OnBeforeContextMenu(IWebBrowser browserControl, IBrowser browser, IFrame frame, IContextMenuParams parameters, IMenuModel model) { model.Remove(CefMenuCommand.Back); model.Remove(CefMenuCommand.Forward); model.Remove(CefMenuCommand.Print); model.Remove(CefMenuCommand.ViewSource); RemoveSeparatorIfLast(model); if (parameters.TypeFlags.HasFlag(ContextMenuType.Selection)) { model.AddSeparator(); } base.OnBeforeContextMenu(browserControl, browser, frame, parameters, model); lastHighlightedTweet = TweetDeckBridge.LastHighlightedTweet; lastHighlightedQuotedTweet = TweetDeckBridge.LastHighlightedQuotedTweet; if (!BrowserUtils.IsTweetDeckWebsite(frame) || browser.IsLoading) { lastHighlightedTweet = string.Empty; lastHighlightedQuotedTweet = string.Empty; } if (!string.IsNullOrEmpty(lastHighlightedTweet) && (parameters.TypeFlags & (ContextMenuType.Editable | ContextMenuType.Selection)) == 0) { model.AddItem((CefMenuCommand)MenuOpenTweetUrl, "Open tweet in browser"); model.AddItem((CefMenuCommand)MenuCopyTweetUrl, "Copy tweet address"); model.AddItem((CefMenuCommand)MenuScreenshotTweet, "Screenshot tweet to clipboard"); if (!string.IsNullOrEmpty(lastHighlightedQuotedTweet)) { model.AddSeparator(); model.AddItem((CefMenuCommand)MenuOpenQuotedTweetUrl, "Open quoted tweet in browser"); model.AddItem((CefMenuCommand)MenuCopyQuotedTweetUrl, "Copy quoted tweet address"); } model.AddSeparator(); } if ((parameters.TypeFlags & (ContextMenuType.Editable | ContextMenuType.Selection)) == 0) { AddSeparator(model); IMenuModel globalMenu = model.Count == 0 ? model : model.AddSubMenu((CefMenuCommand)MenuGlobal, Program.BrandName); globalMenu.AddItem(CefMenuCommand.Reload, "Reload browser"); globalMenu.AddCheckItem((CefMenuCommand)MenuMute, "Mute notifications"); globalMenu.SetChecked((CefMenuCommand)MenuMute, Program.UserConfig.MuteNotifications); globalMenu.AddSeparator(); globalMenu.AddItem((CefMenuCommand)MenuSettings, "Settings"); globalMenu.AddItem((CefMenuCommand)MenuPlugins, "Plugins"); globalMenu.AddItem((CefMenuCommand)MenuAbout, "About " + Program.BrandName); #if DEBUG globalMenu.AddSeparator(); AddDebugMenuItems(globalMenu); #endif } RemoveSeparatorIfLast(model); }
public override void OnBeforeContextMenu(IWebBrowser browserControl, IBrowser browser, IFrame frame, IContextMenuParams parameters, IMenuModel model) { model.Remove(CefMenuCommand.Back); model.Remove(CefMenuCommand.Forward); model.Remove(CefMenuCommand.Print); model.Remove(CefMenuCommand.ViewSource); RemoveSeparatorIfLast(model); if (parameters.TypeFlags.HasFlag(ContextMenuType.Selection)) { if (parameters.TypeFlags.HasFlag(ContextMenuType.Editable)) { model.AddSeparator(); model.AddItem(MenuInputApplyROT13, "Apply ROT13"); } model.AddSeparator(); } base.OnBeforeContextMenu(browserControl, browser, frame, parameters, model); lastHighlightedTweetUrl = TweetDeckBridge.LastHighlightedTweetUrl; lastHighlightedQuoteUrl = TweetDeckBridge.LastHighlightedQuoteUrl; if (!TwitterUtils.IsTweetDeckWebsite(frame) || browser.IsLoading) { lastHighlightedTweetUrl = string.Empty; lastHighlightedQuoteUrl = string.Empty; } if (!string.IsNullOrEmpty(lastHighlightedTweetUrl) && (parameters.TypeFlags & (ContextMenuType.Editable | ContextMenuType.Selection)) == 0) { model.AddItem(MenuOpenTweetUrl, "Open tweet in browser"); model.AddItem(MenuCopyTweetUrl, "Copy tweet address"); model.AddItem(MenuScreenshotTweet, "Screenshot tweet to clipboard"); if (!string.IsNullOrEmpty(lastHighlightedQuoteUrl)) { model.AddSeparator(); model.AddItem(MenuOpenQuotedTweetUrl, "Open quoted tweet in browser"); model.AddItem(MenuCopyQuotedTweetUrl, "Copy quoted tweet address"); } model.AddSeparator(); } if ((parameters.TypeFlags & (ContextMenuType.Editable | ContextMenuType.Selection)) == 0) { AddSeparator(model); IMenuModel globalMenu = model.Count == 0 ? model : model.AddSubMenu(MenuGlobal, Program.BrandName); globalMenu.AddItem(CefMenuCommand.Reload, TitleReloadBrowser); globalMenu.AddCheckItem(MenuMute, TitleMuteNotifications); globalMenu.SetChecked(MenuMute, Program.UserConfig.MuteNotifications); globalMenu.AddSeparator(); globalMenu.AddItem(MenuSettings, TitleSettings); globalMenu.AddItem(MenuPlugins, TitlePlugins); globalMenu.AddItem(MenuAbout, TitleAboutProgram); if (HasDevTools) { globalMenu.AddSeparator(); AddDebugMenuItems(globalMenu); } } RemoveSeparatorIfLast(model); form.InvokeAsyncSafe(() => form.TriggerAnalyticsEvent(AnalyticsFile.Event.BrowserContextMenu)); }