void IContextMenuHandler.OnBeforeContextMenu(IWebBrowser browserControl, IBrowser browser, IFrame frame, IContextMenuParams parameters, IMenuModel model) { //Removing existing menu item model.Remove(CefMenuCommand.ViewSource); // Remove "View Source" option model.Remove(CefMenuCommand.Print); //Add new custom menu items model.AddItem((CefMenuCommand)ViewSource, "View Page Source"); if (parameters.TypeFlags.HasFlag(ContextMenuType.Media) && parameters.HasImageContents) { if(OsirtHelper.HasJpegExtension(parameters.SourceUrl)) { model.AddItem((CefMenuCommand)ViewImageExifData, "View image EXIF data"); } model.AddItem((CefMenuCommand)MenuSaveImage, "Save image"); model.AddItem((CefMenuCommand)CopyImgLocation, "Copy image location to clipboard"); model.AddItem((CefMenuCommand)ReverseImageSearch, "Reverse image search using TinEye"); } if(OsirtHelper.IsOnYouTube(browserControl.Address)) { model.AddItem((CefMenuCommand)SaveYouTubeVideo, "Extract YouTube video"); } if (OsirtHelper.IsOnFacebook(browserControl.Address)) { model.AddItem((CefMenuCommand)ViewFacebookId, "Show Facebook profile ID"); } if(!string.IsNullOrEmpty(parameters.UnfilteredLinkUrl)) { model.AddItem((CefMenuCommand)26501, "Open link in new tab"); } }
void IContextMenuHandler.OnBeforeContextMenu(IWebBrowser browserControl, IBrowser browser, IFrame frame, IContextMenuParams parameters, IMenuModel model) { Console.WriteLine("Context menu opened"); Console.WriteLine(parameters.MisspelledWord); //To disable context mode then clear // model.Clear(); }
void IContextMenuHandler.OnBeforeContextMenu(IWebBrowser browserControl, IBrowser browser, IFrame frame, IContextMenuParams parameters, IMenuModel model) { //To disable the menu then call clear // model.Clear(); //Removing existing menu item bool removed = model.Remove((int)CefMenuCommand.ViewSource); // Remove "View Source" option //adding new menu item model.AddItem((int)CefMenuCommand.Reload, "Reload"); }
void IContextMenuHandler.OnBeforeContextMenu(IWebBrowser browserControl, IBrowser browser, IFrame frame, IContextMenuParams parameters, IMenuModel model) { //To disable the menu then call clear // model.Clear(); //Removing existing menu item //bool removed = model.Remove(CefMenuCommand.ViewSource); // Remove "View Source" option //Add new custom menu items model.AddItem((CefMenuCommand)ShowDevTools, "Show DevTools"); model.AddItem((CefMenuCommand)CloseDevTools, "Close DevTools"); }
void IContextMenuHandler.OnBeforeContextMenu(IWebBrowser browserControl, IBrowser browser, IFrame frame, IContextMenuParams parameters, IMenuModel model) { Console.WriteLine("Context menu opened"); Console.WriteLine(parameters.MisspelledWord); if (model.Count > 0) { model.AddSeparator(); } model.AddItem((CefMenuCommand)26501, "Show DevTools"); model.AddItem((CefMenuCommand)26502, "Close DevTools"); //To disable context mode then clear // model.Clear(); }
bool IContextMenuHandler.RunContextMenu(IWebBrowser browserControl, IBrowser browser, IFrame frame, IContextMenuParams parameters, IMenuModel model, IRunContextMenuCallback callback) { return false; //var chromiumWebBrowser = (ChromiumWebBrowser)browserControl; ////IMenuModel is only valid in the context of this method, so need to read the values before invoking on the UI thread //var menuItems = GetMenuItems(model); //chromiumWebBrowser.Dispatcher.Invoke(() => //{ // var menu = new ContextMenu // { // IsOpen = true // }; // RoutedEventHandler handler = null; // handler = (s, e) => // { // menu.Closed -= handler; // //If the callback has been disposed then it's already been executed // //so don't call Cancel // if(!callback.IsDisposed) // { // callback.Cancel(); // } // }; // menu.Closed += handler; // foreach (var item in menuItems) // { // menu.Items.Add(new MenuItem // { // Header = item.Item1, // Command = new RelayCommand(() => { callback.Continue(item.Item2, CefEventFlags.None); }) // }); // } // chromiumWebBrowser.ContextMenu = menu; //}); //return true; }
public bool RunContextMenu(IWebBrowser browserControl, IBrowser browser, IFrame frame, IContextMenuParams parameters, IMenuModel model, IRunContextMenuCallback callback) { callback.Dispose(); Application.Current.Dispatcher.Invoke(() => { var menu = new ContextMenu { Items = { new MenuItem { Header = "Back", Command = new DelegateCommand(browser.GoBack, () => browser.CanGoBack) }, new MenuItem { Header = "Forward", Command = new DelegateCommand(browser.GoForward, () => browser.CanGoForward) }, new MenuItem { Header = "Refresh", Command = new DelegateCommand(() => browser.Reload(true)) }, new Separator(), new MenuItem { Header = "Select All", Command = new DelegateCommand(() => browser.FocusedFrame.SelectAll()) }, new MenuItem { Header = "Open Page In Default Browser", Command = new DelegateCommand<string>(WindowsHelper.ViewInBrowser), CommandParameter = frame.Url }, } }; menu.IsOpen = true; }); return true; }
public bool RunContextMenu(IWebBrowser wbrowser, IBrowser browser, IFrame frame, IContextMenuParams parameters, IMenuModel model, IRunContextMenuCallback callback) { return(false); }
public void OnBeforeContextMenu(IWebBrowser browserControl, IBrowser browser, IFrame frame, IContextMenuParams parameters, IMenuModel model) { // clear the menu model.Clear(); // save text lastSelText = parameters.SelectionText; // to copy text if (parameters.SelectionText.CheckIfValid()) { model.AddItem(CefMenuCommand.Copy, "Copy"); model.AddSeparator(); } //Removing existing menu item //bool removed = model.Remove(CefMenuCommand.ViewSource); // Remove "View Source" option if (parameters.LinkUrl != "") { model.AddItem((CefMenuCommand)OpenLinkInNewTab, "Open link in new tab"); model.AddItem((CefMenuCommand)CopyLinkAddress, "Copy link"); model.AddSeparator(); } if (parameters.HasImageContents && parameters.SourceUrl.CheckIfValid()) { // RIGHT CLICKED ON IMAGE model.AddItem((CefMenuCommand)00001, "Copy image link"); model.AddItem((CefMenuCommand)00002, "Copy image"); } if (parameters.SelectionText != null) { // TEXT IS SELECTED } //Add new custom menu items //#if DEBUG model.AddItem((CefMenuCommand)ShowDevTools, "Developer tools"); model.AddItem(CefMenuCommand.ViewSource, "View source"); model.AddSeparator(); //#endif model.AddItem((CefMenuCommand)RefreshTab, "Refresh tab"); model.AddItem((CefMenuCommand)CloseTab, "Close tab"); }
public virtual void OnBeforeContextMenu(IWebBrowser browserControl, IBrowser browser, IFrame frame, IContextMenuParams parameters, IMenuModel model) { if (parameters.TypeFlags.HasFlag(ContextMenuType.Link) && !parameters.UnfilteredLinkUrl.EndsWith("tweetdeck.twitter.com/#", StringComparison.Ordinal)) { if (RegexTwitterAccount.IsMatch(parameters.UnfilteredLinkUrl)) { model.AddItem((CefMenuCommand)MenuOpenLinkUrl, "Open account in browser"); model.AddItem((CefMenuCommand)MenuCopyLinkUrl, "Copy account address"); model.AddItem((CefMenuCommand)MenuCopyUsername, "Copy account username"); } else { model.AddItem((CefMenuCommand)MenuOpenLinkUrl, "Open link in browser"); model.AddItem((CefMenuCommand)MenuCopyLinkUrl, "Copy link address"); } model.AddSeparator(); } if (parameters.TypeFlags.HasFlag(ContextMenuType.Media) && parameters.HasImageContents) { model.AddItem((CefMenuCommand)MenuOpenImage, "Open image in browser"); model.AddItem((CefMenuCommand)MenuSaveImage, "Save image as..."); model.AddItem((CefMenuCommand)MenuCopyImageUrl, "Copy image address"); model.AddSeparator(); } }
void IContextMenuHandler.OnBeforeContextMenu(IWebBrowser chromiumWebBrowser, IBrowser browser, IFrame frame, IContextMenuParams parameters, IMenuModel model) { //To disable the menu then call clear // model.Clear(); //Removing existing menu item bool removed = model.Remove(CefMenuCommand.ViewSource); // Remove "View Source" option removed = model.Remove(CefMenuCommand.Print); //Add new custom menu items //model.AddItem((CefMenuCommand)ShowDevTools, "Show DevTools"); //model.AddItem((CefMenuCommand)CloseDevTools, "Close DevTools"); model.AddItem((CefMenuCommand)ShowFind, "Find in page"); model.AddItem((CefMenuCommand)CopyUrl, "Copy URL"); }
public void OnBeforeContextMenu(IWebBrowser browserControl, IBrowser browser, IFrame frame, IContextMenuParams parameters, IMenuModel model) { //移除不需要的菜单 model.Remove(CefMenuCommand.ViewSource); model.Remove(CefMenuCommand.Print); model.Remove(CefMenuCommand.AddToDictionary); model.Remove(CefMenuCommand.SpellCheckNoSuggestions); model.Remove(CefMenuCommand.Reload); //修改菜单显示名称 model.SetLabel(CefMenuCommand.Undo, "撤回"); model.SetLabel(CefMenuCommand.Redo, "恢复"); model.SetLabel(CefMenuCommand.Back, "返回"); model.SetLabel(CefMenuCommand.Forward, "前进"); model.SetLabel(CefMenuCommand.Cut, "剪切"); model.SetLabel(CefMenuCommand.Copy, "复制"); model.SetLabel(CefMenuCommand.Paste, "粘贴"); model.SetLabel(CefMenuCommand.Delete, "删除"); model.SetLabel(CefMenuCommand.SelectAll, "全选"); //添加菜单 model.AddItem(CefMenuCommand.Reload, "重新加载"); }
private IMenuModel FindModel(IMenuModel model, string path) { string[] parts = path.Split(new[] { '/' }, StringSplitOptions.RemoveEmptyEntries); return(FindModel(model, parts)); }
/// <summary> /// /// </summary> /// <param name="model"></param> /// <param name="view"></param> public MenuPresenter(IMenuModel model, IMenuView view) { _model = model; _view = view; }
/// <summary> /// The on before context menu. /// </summary> /// <param name="browserControl"> /// The browser control. /// </param> /// <param name="browser"> /// The browser. /// </param> /// <param name="frame"> /// The frame. /// </param> /// <param name="parameters"> /// The parameters. /// </param> /// <param name="model"> /// The model. /// </param> void IContextMenuHandler.OnBeforeContextMenu(IWebBrowser browserControl, IBrowser browser, IFrame frame, IContextMenuParams parameters, IMenuModel model) { // To disable the menu then call clear model.Clear(); // Removing existing menu item // Remove "View Source" option model.Remove(CefMenuCommand.ViewSource); // Add new custom menu items model.AddItem((CefMenuCommand)ShowDevTools, "Show DevTools"); model.AddItem((CefMenuCommand)CloseDevTools, "Close DevTools"); }
private IMenuModel FindModel(IMenuModel model, string path) { string[] parts = path.Split(new[] {'/'}, StringSplitOptions.RemoveEmptyEntries); return FindModel(model, parts); }
private IMenuModel FindModel(IMenuModel model, string[] fragments) { IMenuModel childModel = model.Children.FirstOrDefault(child => child.Name == fragments[0]); if (fragments.Length > 1) { var fragmentsLessOne = new string[fragments.Length - 1]; Array.ConstrainedCopy(fragments, 1, fragmentsLessOne, 0, fragmentsLessOne.Length); return FindModel(childModel, fragmentsLessOne); } return childModel; }
private static IEnumerable<Tuple<string, CefMenuCommand>> GetMenuItems(IMenuModel model) { var list = new List<Tuple<string, CefMenuCommand>>(); for(var i = 0; i < model.Count; i++) { var header = model.GetLabelAt(i); var commandId = model.GetCommandIdAt(i); list.Add(new Tuple<string, CefMenuCommand>(header, commandId)); } return list; }
public void OnBeforeContextMenu(IWebBrowser browserControl, IBrowser browser, IFrame frame, IContextMenuParams parameters, IMenuModel model) { // Remove any existent option using the Clear method of the model // //model.Clear(); // Add a new item to the list using the AddItem method of the model if (!string.IsNullOrEmpty(parameters.LinkUrl) && parameters.LinkUrl.StartsWith("http", StringComparison.OrdinalIgnoreCase)) { model.AddItem((CefMenuCommand)26504, "Copy link address"); if (model.Count > 0) { model.AddSeparator(); } model.AddItem((CefMenuCommand)26502, "Open in new tab w/ cookies"); model.AddItem((CefMenuCommand)26503, "Open in new tab"); model.AddItem((CefMenuCommand)26505, "Open in default browser"); //model.SetCommandIdAt(0, (CefMenuCommand)26502); not working? model.AddSeparator(); } model.AddItem((CefMenuCommand)26501, "Export as PDF"); // Add a separator //model.AddSeparator(); }
public void NotifyChanged(IMenuModel model) { foreach (IMenuModelObserver observer in _observers) observer.NotifyChanged(model); }
void IContextMenuHandler.OnBeforeContextMenu(IWebBrowser browserControl, IBrowser browser, IFrame frame, IContextMenuParams parameters, IMenuModel model) { if (!string.IsNullOrWhiteSpace(parameters.SelectionText)) { selectionTextQuery = parameters.SelectionText; model.AddItem((CefMenuCommand)SearchGoogle, $"Pesquisar \"{selectionTextQuery.Substring(0, Math.Min(selectionTextQuery.Length, 60))}\" no Google"); } statusLabelLink = currentBrowserTab.statusLabel.Text; if (Uri.IsWellFormedUriString(statusLabelLink, UriKind.RelativeOrAbsolute) && !string.IsNullOrWhiteSpace(statusLabelLink)) { model.Clear(); model.AddItem((CefMenuCommand)OpenNewTab, "Abrir link em nova guia"); } else { //model.SetLabel(CefMenuCommand.Redo, "Refazer"); //model.SetLabel(CefMenuCommand.Undo, "Desfazer"); model.Remove(CefMenuCommand.Redo); model.Remove(CefMenuCommand.Undo); model.SetLabel(CefMenuCommand.Forward, "Avançar"); model.SetLabel(CefMenuCommand.Back, "Voltar"); model.SetLabel(CefMenuCommand.Copy, "Copiar"); //model.SetLabel(CefMenuCommand.AddToDictionary, "Adicionar ao dicionário"); model.SetLabel(CefMenuCommand.Cut, "Cortar"); model.SetLabel(CefMenuCommand.Delete, "Apagar"); model.SetLabel(CefMenuCommand.Paste, "Colar"); model.SetLabel(CefMenuCommand.SelectAll, "Selecionar tudo"); model.SetLabel(CefMenuCommand.Print, "Imprimir"); model.SetLabel(CefMenuCommand.Reload, "Recarregar"); model.SetLabel(CefMenuCommand.ReloadNoCache, "Voltar"); model.SetLabel(CefMenuCommand.ViewSource, "Exibir código fonte da página"); model.AddSeparator(); //indexado model.AddItem((CefMenuCommand)ShowDevTools, "Inspecionar"); } }
public bool RunContextMenu(IWebBrowser browserControl, IBrowser browser, IFrame frame, IContextMenuParams parameters, IMenuModel model, IRunContextMenuCallback callback) { // show default menu return(false); }
public void AddMenuModel(string path, IMenuModel model) { CollectionMenuModel parentModel = FindOrCreateCollection(path); parentModel.AddModel(model); model.Register(this); }
void IContextMenuHandler.OnBeforeContextMenu(IWebBrowser browserControl, IBrowser browser, IFrame frame, IContextMenuParams parameters, IMenuModel model) { //To disable the menu then call clear // model.Clear(); }
public bool RunContextMenu(IWebBrowser browserControl, IBrowser browser, IFrame frame, IContextMenuParams parameters, IMenuModel model, IRunContextMenuCallback callback) { return true; }
public void OnBeforeContextMenu(IWebBrowser browserControl, IBrowser browser, IFrame frame, IContextMenuParams parameters, IMenuModel model) { if (model.Count > 0) { model.Clear(); } //model.AddItem(CefSharp.CefMenuCommand.Copy,"复制"); //model.AddSeparator(); //model.AddItem(CefSharp.CefMenuCommand.Back, "返回"); //model.AddItem(CefSharp.CefMenuCommand.Forward, "前进"); //model.AddItem(CefSharp.CefMenuCommand.Reload, "刷新"); //model.AddSeparator(); if (IsAboutMenu) { model.AddItem((CefSharp.CefMenuCommand) 221, "关于"); } }
public void OnBeforeContextMenu(IWebBrowser browserControl, IBrowser browser, IFrame frame, IContextMenuParams parameters, IMenuModel model) { return; }
public void OnBeforeContextMenu(IWebBrowser browserControl, IBrowser browser, IFrame frame, IContextMenuParams parameters, IMenuModel model) { // Remove any existent option using the Clear method of the model // model.Clear(); Console.WriteLine("Context menu opened !"); // You can add a separator in case that there are more items on the list if (model.Count > 0) { model.AddSeparator(); } // Add a new item to the list using the AddItem method of the model model.AddItem((CefMenuCommand)26501, "Show DevTools"); model.AddItem((CefMenuCommand)26502, "Close DevTools"); // Add a separator model.AddSeparator(); // Add another example item model.AddItem((CefMenuCommand)26503, "Display alert message"); }
public bool RunContextMenu(IWebBrowser browserControl, IBrowser browser, IFrame frame, IContextMenuParams parameters, IMenuModel model, IRunContextMenuCallback callback) { model.SetEnabled(CefMenuCommand.Cut, false); return(false); }
bool IContextMenuHandler.RunContextMenu(IWebBrowser browserControl, IBrowser browser, IFrame frame, IContextMenuParams parameters, IMenuModel model, IRunContextMenuCallback callback) { return(false); //var chromiumWebBrowser = (ChromiumWebBrowser)browserControl; ////IMenuModel is only valid in the context of this method, so need to read the values before invoking on the UI thread //var menuItems = GetMenuItems(model); //chromiumWebBrowser.Dispatcher.Invoke(() => //{ // var menu = new ContextMenu // { // IsOpen = true // }; // RoutedEventHandler handler = null; // handler = (s, e) => // { // menu.Closed -= handler; // //If the callback has been disposed then it's already been executed // //so don't call Cancel // if(!callback.IsDisposed) // { // callback.Cancel(); // } // }; // menu.Closed += handler; // foreach (var item in menuItems) // { // menu.Items.Add(new MenuItem // { // Header = item.Item1, // Command = new RelayCommand(() => { callback.Continue(item.Item2, CefEventFlags.None); }) // }); // } // chromiumWebBrowser.ContextMenu = menu; //}); //return true; }
protected void AddDebugMenuItems(IMenuModel model) { model.AddItem((CefMenuCommand)MenuOpenDevTools, "Open dev tools"); }
public override void OnBeforeContextMenu(IWebBrowser chromiumWebBrowser, IBrowser browser, IFrame frame, IContextMenuParams parameters, IMenuModel model) { int count = 0; if (!string.IsNullOrWhiteSpace(parameters.SelectionText)) { model.InsertItemAt(0, Search, "menu_search"); count++; } if (!string.IsNullOrWhiteSpace(parameters.LinkUrl)) { model.InsertCheckItemAt(0, OpenInNewWindow, "menu_openInNewWindow"); count++; } if (count > 0) { model.InsertSeparatorAt(count); } }
public void OnBeforeContextMenu(IWebBrowser chromiumWebBrowser, IBrowser browser, IFrame frame, IContextMenuParams parameters, IMenuModel model) { }
public override bool RunContextMenu(IWebBrowser chromiumWebBrowser, IBrowser browser, IFrame frame, IContextMenuParams parameters, IMenuModel model, IRunContextMenuCallback callback) { var menuItems = GetMenuItems(model).ToList(); var linkUrl = parameters.LinkUrl; var selectionText = parameters.SelectionText; wfChromiumWebBrowser.Dispatcher.Invoke(() => { var menu = new ContextMenu { IsOpen = true }; RoutedEventHandler handler = null; handler = (s, e) => { menu.Closed -= handler; if (!callback.IsDisposed) { callback.Cancel(); } }; menu.Closed += handler; foreach (var item in menuItems) { string header = string.Empty; if (item.commandId == CefMenuCommand.NotFound) { menu.Items.Add(new Separator()); continue; } switch (item.commandId) { case CefMenuCommand.Back: { header = LanguageManager.GetString("menu_back"); break; } case CefMenuCommand.Forward: { header = LanguageManager.GetString("menu_forward"); break; } case CefMenuCommand.Cut: { header = LanguageManager.GetString("menu_cut"); break; } case CefMenuCommand.Copy: { header = LanguageManager.GetString("menu_copy"); break; } case CefMenuCommand.Paste: { header = LanguageManager.GetString("menu_paste"); break; } case CefMenuCommand.Print: { header = LanguageManager.GetString("menu_print"); break; } case CefMenuCommand.ViewSource: { header = LanguageManager.GetString("menu_viewSource"); break; } case CefMenuCommand.Undo: { header = LanguageManager.GetString("menu_undo"); break; } case CefMenuCommand.StopLoad: { header = LanguageManager.GetString("menu_stop"); break; } case CefMenuCommand.SelectAll: { header = LanguageManager.GetString("menu_selectAll"); break; } case CefMenuCommand.Redo: { header = LanguageManager.GetString("menu_redo"); break; } case CefMenuCommand.Find: { header = LanguageManager.GetString("menu_find"); break; } case CefMenuCommand.AddToDictionary: { header = LanguageManager.GetString("menu_addToDictionary"); break; } case CefMenuCommand.Reload: { header = LanguageManager.GetString("menu_reload"); break; } case CefMenuCommand.ReloadNoCache: { header = LanguageManager.GetString("menu_reloadNoCache"); break; } case OpenInNewWindow: { header = string.Format(LanguageManager.GetString(item.header), linkUrl); break; } case Search: { var tmp = selectionText.Length > 32 ? selectionText.Substring(0, 32) + "..." : selectionText; header = string.Format(LanguageManager.GetString(item.header), tmp.Replace('\n', ' ')); break; } default: { header = item.header; break; } } menu.Items.Add(new MenuItem { Header = header, Command = new DelegateCommand { CanExecute = item.isEnable, Execute = obj => callback.Continue(item.commandId, CefEventFlags.None) } }); } wfChromiumWebBrowser.ContextMenu = menu; }); return(true); }
public void AddModel(IMenuModel model) { _models.Add(model); model.Parent = this; _models = SortByAfter(_models); }
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"); } } } AddDebugMenuItems(model); RemoveSeparatorIfLast(model); form.InvokeAsyncSafe(() => { form.ContextMenuOpen = true; form.AnalyticsFile.NotificationContextMenus.Trigger(); }); }
void IContextMenuHandler.OnBeforeContextMenu(IWebBrowser browserControl, IBrowser browser, IFrame frame, IContextMenuParams parameters, IMenuModel model) { //To disable the menu then call clear // model.Clear(); //Removing existing menu item //bool removed = model.Remove(CefMenuCommand.ViewSource); // Remove "View Source" option model.Remove(CefMenuCommand.Print); // Remove menu Print // Add a separator //model.AddSeparator(); //Add new custom menu items model.AddItem((CefMenuCommand)ReloadPage, "Reload"); model.AddItem((CefMenuCommand)ShowDevTools, "Show DevTools"); model.AddItem((CefMenuCommand)CloseDevTools, "Close DevTools"); model.AddItem((CefMenuCommand)OpenLogRequestResource, "Open Log"); model.AddItem((CefMenuCommand)ClearLogRequestResource, "Clear Log"); // Add a separator model.AddSeparator(); model.AddItem((CefMenuCommand)ExitApplication, "Exit"); }
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); }
void IContextMenuHandler.OnBeforeContextMenu(IWebBrowser browserControl, IBrowser browser, IFrame frame, IContextMenuParams parameters, IMenuModel model) { //Add new custom menu items model.AddItem((CefMenuCommand)Copy, "Copy Link Address"); }
/// <summary> /// The run context menu. /// </summary> /// <param name="browserControl"> /// The browser control. /// </param> /// <param name="browser"> /// The browser. /// </param> /// <param name="frame"> /// The frame. /// </param> /// <param name="parameters"> /// The parameters. /// </param> /// <param name="model"> /// The model. /// </param> /// <param name="callback"> /// The callback. /// </param> /// <returns> /// The <see cref="bool"/>. /// </returns> bool IContextMenuHandler.RunContextMenu(IWebBrowser browserControl, IBrowser browser, IFrame frame, IContextMenuParams parameters, IMenuModel model, IRunContextMenuCallback callback) { return(false); }
public bool RunContextMenu(IWebBrowser chromiumWebBrowser, IBrowser browser, IFrame frame, IContextMenuParams parameters, IMenuModel model, IRunContextMenuCallback callback) { if (ctxMenuCallback == null) { // Suppress the context menu. return(true); } else { return(ctxMenuCallback(parameters.XCoord, parameters.YCoord)); } }
public void OnBeforeContextMenu(IWebBrowser browserControl, IBrowser browser, IFrame frame, IContextMenuParams parameters, IMenuModel model) { model.Clear(); }
void IContextMenuHandler.OnBeforeContextMenu(IWebBrowser browserControl, IBrowser browser, IFrame frame, IContextMenuParams parameters, IMenuModel model) { model.AddItem((CefMenuCommand)ShowDevTools, "Show DevTools"); }
bool IContextMenuHandler.RunContextMenu(IWebBrowser browserControl, IBrowser browser, IFrame frame, IContextMenuParams parameters, IMenuModel model, IRunContextMenuCallback callback) { return false; }
public void OnBeforeContextMenu(IWebBrowser browserControl, IBrowser browser, IFrame frame, IContextMenuParams parameters, IMenuModel model) { model.Clear(); model.AddItem(CefMenuCommand.Copy, "复制"); model.AddItem(CefMenuCommand.Paste, "粘贴"); model.AddItem(CefMenuCommand.Print, "打印"); }
public bool RunContextMenu(IWebBrowser browserControl, IBrowser browser, IFrame frame, IContextMenuParams parameters, IMenuModel model, IRunContextMenuCallback callback) { return(false);//返回true则不显示,返回false则显示 }
void IContextMenuHandler.OnBeforeContextMenu(IWebBrowser browserControl, IBrowser browser, IFrame frame, IContextMenuParams parameters, IMenuModel model) { Console.WriteLine("Context menu opened"); Console.WriteLine(parameters.MisspelledWord); if (model.Count > 0) { model.AddSeparator(); } url = parameters.LinkUrl; model.Clear(); if (!url.Equals("")) model.AddItem((CefMenuCommand)26501, "Open link in new tab"); if (parameters.MediaType == ContextMenuMediaType.Image) { img = parameters.SourceUrl; model.AddItem((CefMenuCommand) 26502, "Save image"); } }