/// <summary> /// The run context menu. /// </summary> /// <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> protected override bool RunContextMenu(CefBrowser browser, CefFrame frame, CefContextMenuParams parameters, CefMenuModel model, CefRunContextMenuCallback callback) { return(false); }
protected override void OnBeforeContextMenu(CefBrowser browser, CefFrame frame, CefContextMenuParams state, CefMenuModel model) { model.Clear(); }
internal BeforeContextMenuEventArgs(CefFrame frame, CefContextMenuParams state, CefMenuModel model) { Frame = frame; State = state; Model = model; }
protected override void OnBeforeContextMenu(CefBrowser browser, CefFrame frame, CefContextMenuParams menuParams, CefMenuModel model) { if (model.Count > 0) { model.AddSeparator(); } model.AddItem(SHOW_DEV_TOOLS, "&Show DevTools"); model.AddItem(INSPECT_ELEMENT, "Inspect element"); model.AddSeparator(); CefMenuModel submenu = model.AddSubMenu(0, "Submenu Test"); submenu.AddItem((int)CefMenuId.Copy, "Copy"); submenu.AddItem((int)CefMenuId.Paste, "Paste"); submenu.SetColorAt(submenu.Count - 1, CefMenuColorType.Text, CefColor.FromArgb(Color.Blue.ToArgb())); submenu.AddCheckItem(0, "Checked Test"); submenu.SetCheckedAt(submenu.Count - 1, true); submenu.AddRadioItem(0, "Radio Off", 0); submenu.AddRadioItem(0, "Radio On", 1); submenu.SetCheckedAt(submenu.Count - 1, true); }
protected override bool OnContextMenuCommand(CefBrowser browser, CefFrame frame, CefContextMenuParams state, int commandId, CefEventFlags eventFlags) { switch (commandId) { case 134: Clipboard.SetText(state.LinkUrl); return(true); case 133: //在新窗口中打开这个链接 if (state.LinkUrl != null) { linkrul = state.LinkUrl; } else if (IsUrl(state.SelectionText)) { linkrul = state.SelectionText; } MainForm.Instance.Invoke(new Action(() => { MainForm.Instance.AddNewBrowserTab(linkrul); })); linkrul = ""; GC.Collect(); return(true); case 135: //在新窗口中打开链接并搜索选中的内容 MainForm.Instance.Invoke(new Action(() => { FATabStripItem fATab = new FATabStripItem(); fATab.TabIndex = MainForm.Instance.faTabStrip1.SelectedItem.TabIndex + 1; MainForm.Instance.faTabStrip1.InsetTab(fATab, true, fATab.TabIndex); MainForm.Instance.PubSeach(MainForm.Instance.faTabStrip1.SelectedItem, SearStr); fATab = null; GC.Collect(); })); return(true); case 136: //图片另存为 SaveFileDialog savedialog = new SaveFileDialog(); savedialog.Filter = "Jpg 图片|*.jpg|Bmp 图片|*.bmp|Gif 图片|*.gif|Png 图片|*.png|Wmf 图片|*.wmf"; savedialog.FilterIndex = 0; savedialog.RestoreDirectory = true; //保存对话框是否记忆上次打开的目录 savedialog.CheckPathExists = true; //检查目录 savedialog.FileName = System.DateTime.Now.ToString("yyyyMMddHHmmss") + "-"; //设置默认文件名 if (savedialog.ShowDialog() == DialogResult.OK) { browser.GetHost().DownloadImage(state.SourceUrl, false, 0, false, new CefWebDownloadImageCallbackHandler(savedialog.FileName, -1, null, "")); //WriteBytesToFile(savedialog.FileName, GetBytesFromUrl(state.SourceUrl)); //Image.Save(, System.Drawing.Imaging.ImageFormat.Jpeg);// image为要保存的图片 MessageBox.Show("图片保存成功!", "信息提示"); } savedialog = null; GC.Collect(); return(true); case 100: Clipboard.SetText(state.SelectionText); return(true); case 114: frame.Paste(); return(true); case 113: browser.StopLoad(); return(true); case 200: browser.GoBack(); return(true); case 300: browser.GoForward(); return(true); case 350: //刷新 PublicClass.ReflashBrowser(browser, _core); return(true); case 400: //browser; //var host = browser.GetHost(); //var wi = CefWindowInfo.Create(); //wi.SetAsPopup(IntPtr.Zero, "DevTools"); //host.ShowDevTools(wi, new DevToolsWebClient(), new CefBrowserSettings(), new CefPoint(0, 0)); PublicClass.DevTools(_core, browser); return(true); case 401: SaveFileDialog pdfsave = new SaveFileDialog(); pdfsave.Filter = "PDF文件|*.pdf"; pdfsave.FilterIndex = 0; pdfsave.RestoreDirectory = true; //保存对话框是否记忆上次打开的目录 pdfsave.CheckPathExists = true; //检查目录 pdfsave.FileName = _core.Title; // System.DateTime.Now.ToString("yyyyMMddHHmmss") + "-"; ;//设置默认文件名 if (pdfsave.ShowDialog() == DialogResult.OK) { _core.Browser.GetHost().PrintToPdf(pdfsave.FileName, new CefPdfPrintSettings(), new CefWebPdfPrinerHandler()); } pdfsave = null; return(true); case 402: _core.Browser.GetHost().Print(); //print web page return(true); default: // Allow default handling, if any. return(false); } }
protected override void OnBeforeContextMenu(CefBrowser browser, CefFrame frame, CefContextMenuParams state, CefMenuModel model) { //To disable the menu then call clear model.Clear(); // Removing existing menu item // Remove "View Source" option bool removed = model.Remove((int)CefMenuId.ViewSource); //Add new custom menu items model.AddItem((int)((CefMenuId)ShowDevTools), "Show DevTools"); model.AddItem((int)((CefMenuId)CloseDevTools), "Close DevTools"); }
protected override bool OnContextMenuCommand(CefBrowser browser, CefFrame frame, CefContextMenuParams state, int commandId, CefEventFlags eventFlags) { if (base.OnContextMenuCommand(browser, frame, state, commandId, eventFlags)) { return(true); } if (commandId == 26500) { devTools ??= new DevTools(browser.GetHost()); devTools.Disposed += OnDevToolsDisposed; devTools.Show(state.X, state.Y); return(true); } return(false); }
protected override void OnBeforeContextMenu(CefBrowser browser, CefFrame frame, CefContextMenuParams state, CefMenuModel model) { model.Clear(); }
protected override void OnBeforeContextMenu(CefBrowser browser, CefFrame frame, CefContextMenuParams state, CefMenuModel model) { if (OwnerWebView.DisableBuiltinContextMenus) { model.Clear(); } }
protected override void OnBeforeContextMenu(CefBrowser browser, CefFrame frame, CefContextMenuParams state, CefMenuModel model) { base.OnBeforeContextMenu(browser, frame, state, model); AddSeparator(model); model.AddItem(26500, "Open dev tools"); }
protected override bool OnContextMenuCommand(CefBrowser browser, CefFrame frame, CefContextMenuParams state, int commandId, CefEventFlags eventFlags) { //return base.OnContextMenuCommand(browser, frame, state, commandId, eventFlags); return(false); }
protected override void OnBeforeContextMenu(CefBrowser browser, CefFrame frame, CefContextMenuParams state, CefMenuModel model) { model.Clear();//清除掉构建的菜单对象 if (this._isShowMenu == false) { return; } //添加刷新菜单 //model.AddItem((int)CefMenuId.ReloadNoCache, "强制刷新"); model.AddItem((int)CefMenuId.Back, "返回"); model.AddItem((int)CefMenuId.Forward, "前进"); model.AddItem((int)CefMenuId.ReloadNoCache, "强制刷新"); model.AddItem((int)CefMenuId.ViewSource, "查看源码"); base.OnBeforeContextMenu(browser, frame, state, model); }
public override void OnBeforeContextMenu(CefBrowser browser, CefFrame frame, CefContextMenuParams @params, CefMenuModel model) { _implementation.OnBeforeContextMenu(browser, frame, @params, model); }
internal protected virtual bool OnContextMenuCommand(CefBrowser browser, CefFrame frame, CefContextMenuParams menuParams, int commandId, CefEventFlags eventFlags) { return(false); }
protected override void OnBeforeContextMenu(CefBrowser browser, CefFrame frame, CefContextMenuParams state, CefMenuModel model) { // デフォルトのコンテキストメニューを無効化 model.Clear(); }
protected override void OnBeforeContextMenu(CefBrowser browser, CefFrame frame, CefContextMenuParams state, CefMenuModel model) { if (!TwitterUrls.IsTweetDeck(frame.Url) || browser.IsLoading) { extraContext.Reset(); } base.OnBeforeContextMenu(browser, frame, state, model); }
protected override void OnBeforeContextMenu(CefBrowser browser, CefFrame frame, CefContextMenuParams menuParams, CefMenuModel model) { var count = model.Count; if (count > 0) { for (int i = 0; i < count; i++) { var commandId = (CefMenuId)model.GetCommandIdAt(i); switch (commandId) { case CefMenuId.Undo: case CefMenuId.Redo: case CefMenuId.Cut: case CefMenuId.Copy: case CefMenuId.Paste: case CefMenuId.Delete: case CefMenuId.SelectAll: case CefMenuId.Find: break; default: break; } } } if (AppHelper.EnableDevtools) { model.Remove((int)CefMenuId.Print); model.Remove((int)CefMenuId.ViewSource); if (model.Count >= 1) { model.RemoveAt(model.Count - 1); } model.AddItem(SHOW_DEV_TOOLS, "&Show DevTools"); } else { model.Clear(); // 禁用右键菜单 } //model.InsertItemAt(model.Count > 0 ? 1 : 0, (int)CefMenuId.ReloadNocache, "Refresh"); //model.AddSeparator(); //model.AddItem(SHOW_DEV_TOOLS, "&Show DevTools"); //model.AddItem(INSPECT_ELEMENT, "Inspect element"); //CefMenuModel submenu = model.AddSubMenu(0, "Submenu Test"); //submenu.AddItem((int)CefMenuId.Copy, "Copy"); //submenu.AddItem((int)CefMenuId.Paste, "Paste"); //submenu.SetColorAt(submenu.Count - 1, CefMenuColorType.Text, CefColor.FromArgb((int)Colors.Blue.ToUint32())); //submenu.AddCheckItem(0, "Checked Test"); //submenu.SetCheckedAt(submenu.Count - 1, true); //submenu.AddRadioItem(0, "Radio Off", 0); //submenu.AddRadioItem(0, "Radio On", 1); //submenu.SetCheckedAt(submenu.Count - 1, true); }
protected override void OnBeforeContextMenu(CefBrowser browser, CefFrame frame, CefContextMenuParams menuParams, CefMenuModel model) { //处理 鼠标右键的快捷键 model.Clear(); model.AddItem((int)CefMenuId.Copy, "复制"); //model.AddItem((int)CefMenuId.ViewSource, AppResource.查看源); }
protected internal unsafe override void OnBeforeContextMenu(CefBrowser browser, CefFrame frame, CefContextMenuParams @params, CefMenuModel model) { _implementation.OnBeforeContextMenu(browser, frame, @params, model); }
protected override void OnBeforeContextMenu(CefBrowser browser, CefFrame frame, CefContextMenuParams state, CefMenuModel model) { if (model.Count > 0) { model.Clear(); } //bool removed = model.Remove(CefMenuCommand.ViewSource); // Remove "View Source" option if (state.LinkUrl != null || IsUrl(state.SelectionText)) { model.AddItem(133, "新窗口中打开链接"); model.AddItem(134, "复制链接"); model.AddSeparator(); } model.AddItem(135, "搜索此内容"); if (state.MediaType == CefContextMenuMediaType.Image) { SearStr = state.SelectionText; model.AddItem(136, "图片另存为"); } model.AddSeparator(); model.AddItem(100, "复制"); model.AddItem(114, "粘贴"); model.AddSeparator(); model.AddItem(200, "返回"); model.AddItem(300, "前进"); model.AddItem(350, "刷新"); model.AddItem(113, "停止"); model.AddSeparator(); if (_core.Browser.GetHost() != null) { // model.AddSeparator(); model.AddItem(402, "打印此页"); model.AddItem(401, "页面另存为PDF"); model.AddSeparator(); } if (!_core.DevToolsOpen) { model.AddItem(400, "打开调试工具"); } else { model.AddItem(400, "关闭调试工具"); } if (state.SelectionText != null) { model.SetEnabled(100, true); } else { model.SetEnabled(100, false); } if (Clipboard.GetText() == "") { model.SetEnabled(114, false); } else { model.SetEnabled(114, true); } if (state.SelectionText != "" && state.SelectionText != null) { SearStr = state.SelectionText; model.SetEnabled(135, true); } else { model.SetEnabled(135, false); } if (browser.IsLoading) { model.SetEnabled(113, true); } else { model.SetEnabled(113, false); } if (browser.CanGoBack) { model.SetEnabled(200, true); } else { model.SetEnabled(200, false); } if (browser.CanGoForward) { model.SetEnabled(300, true); } else { model.SetEnabled(300, false); } }
protected internal unsafe override bool RunContextMenu(CefBrowser browser, CefFrame frame, CefContextMenuParams @params, CefMenuModel model, CefRunContextMenuCallback callback) { return(_implementation.RunContextMenu(browser, frame, @params, model, callback)); }
protected override bool OnContextMenuCommand(CefBrowser browser, CefFrame frame, CefContextMenuParams state, int commandId, CefEventFlags eventFlags) { if (commandId == (int)ContextMenuHelper.MenuIdentifier.MENU_ID_SHOW_DEVTOOLS) { _owner.ShowDevTools(); return(true); } if (commandId == (int)ContextMenuHelper.MenuIdentifier.MENU_ID_HIDE_DEVTOOLS) { _owner.WebView.BrowserHost.CloseDevTools(); return(true); } var e = new ContextMenuCommandEventArgs(frame, state, commandId, eventFlags); _owner.InvokeIfRequired(() => _owner.OnContextMenuCommand(e)); return(e.Handled); }
protected internal unsafe override bool OnContextMenuCommand(CefBrowser browser, CefFrame frame, CefContextMenuParams @params, int commandId, CefEventFlags eventFlags) { return(_implementation.OnContextMenuCommand(browser, frame, @params, commandId, eventFlags)); }
protected override void OnBeforeContextMenu(CefBrowser browser, CefFrame frame, CefContextMenuParams state, CefMenuModel model) { for (var index = model.Count - 1; index >= 0; index--) { var nCmd = model.GetCommandIdAt(index); if (!ContextMenuHelper.IsEdition(nCmd) && !ContextMenuHelper.IsUserDefined(nCmd)) { model.Remove(nCmd); } } if (WinFormium.Runtime.IsDebuggingMode && (state.ContextMenuType & CefContextMenuTypeFlags.Editable) != CefContextMenuTypeFlags.Editable) { if (model.Count > 0) { model.AddSeparator(); } model.AddItem((int)((CefMenuId)ContextMenuHelper.MenuIdentifier.MENU_ID_SHOW_DEVTOOLS), Resources.Messages.ContextMenu_ShowDevTools); model.AddItem((int)((CefMenuId)ContextMenuHelper.MenuIdentifier.MENU_ID_HIDE_DEVTOOLS), Resources.Messages.ContextMenu_CloseDevTools); } var e = new BeforeContextMenuEventArgs(frame, state, model); _owner.InvokeIfRequired(() => _owner.OnBeforeContextMenu(e)); }
protected override void OnBeforeContextMenu(CefBrowser browser, CefFrame frame, CefContextMenuParams state, CefMenuModel model) { Log.Trace("ContextMenuHandler.OnBeforeContextMenu( browser: {0}, frame: {1}, state: {2}, model: CefMenuModel[{3}] )", browser.Identifier, frame.Identifier, "(" + state.X + ", " + state.Y + ")", model.Count); base.OnBeforeContextMenu(browser, frame, state, model); }
protected override bool OnContextMenuCommand(CefBrowser browser, CefFrame frame, CefContextMenuParams menuParams, int commandId, CefEventFlags eventFlags) { if (commandId >= (int)CefMenuId.UserFirst && commandId <= (int)CefMenuId.UserLast) { switch (commandId) { case SHOW_DEV_TOOLS: WebView.ShowDevTools(); break; case INSPECT_ELEMENT: WebView.ShowDevTools(new CefPoint(menuParams.XCoord, menuParams.YCoord)); break; } return(true); } return(false);; }
protected override Boolean OnContextMenuCommand(CefBrowser browser, CefFrame frame, CefContextMenuParams state, Int32 commandId, CefEventFlags eventFlags) { Log.Trace("ContextMenuHandler.OnContextMenuCommand( browser: {0}, frame: {1}, state: {2}, commandId: {3}, eventFlags: {4} )", browser.Identifier, frame.Identifier, "(" + state.X + ", " + state.Y + ")", commandId, eventFlags); return(base.OnContextMenuCommand(browser, frame, state, commandId, eventFlags)); }
/// <summary> /// The on context menu command. /// </summary> /// <param name="browser"> /// The browser. /// </param> /// <param name="frame"> /// The frame. /// </param> /// <param name="state"> /// The state. /// </param> /// <param name="commandId"> /// The command id. /// </param> /// <param name="eventFlags"> /// The event flags. /// </param> /// <returns> /// The <see cref="bool"/>. /// </returns> protected override bool OnContextMenuCommand(CefBrowser browser, CefFrame frame, CefContextMenuParams state, int commandId, CefEventFlags eventFlags) { if (this.debugging) { if (commandId == ShowDevTools) { var host = browser.GetHost(); var wi = CefWindowInfo.Create(); wi.SetAsPopup(IntPtr.Zero, "DevTools"); host.ShowDevTools(wi, new DevToolsWebClient(), new CefBrowserSettings(), new CefPoint(0, 0)); } if (commandId == CloseDevTools) { browser.GetHost().CloseDevTools(); } } return(false); }
protected override Context CreateContext(CefContextMenuParams parameters) { return(CreateContext(parameters, extraContext, ImageQuality.Best)); }
protected override void OnBeforeContextMenu(CefBrowser browser, CefFrame frame, CefContextMenuParams state, CefMenuModel model) { // To disable the menu then call clear model.Clear(); if (_config.Platform == ChromelyPlatform.Windows) { // Removing existing menu item // Remove "View Source" option model.Remove((int)CefMenuId.ViewSource); if (debugging) { // Add new custom menu items model.AddItem((int)((CefMenuId)ShowDevTools), "Show DevTools"); model.AddItem((int)((CefMenuId)CloseDevTools), "Close DevTools"); } } }
internal protected virtual bool RunContextMenu(CefBrowser browser, CefFrame frame, CefContextMenuParams menuParams, CefMenuModel model, CefRunContextMenuCallback callback) { return(WebView.RaiseRunContextMenu(frame, menuParams, model, callback)); }