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)); }
private static void AddSeparator(CefMenuModel model) { if (model.Count > 0 && model.GetItemTypeAt(model.Count - 1) != CefMenuItemType.Separator) { model.AddSeparator(); } }
protected override void OnBeforeContextMenu(CefBrowser browser, CefFrame frame, CefContextMenuParams state, CefMenuModel model) { if (!webBrowser.menuVisible) { model.Clear(); } int commandId = 1001; if (webBrowser.ContextMenu != null) { foreach (MenuItem item in webBrowser.ContextMenu.MenuItems) { if (item.Text == "-") { model.AddSeparator(); } else { model.AddItem(commandId, item.Text); } CommandItem commandItem = new CommandItem(); commandItem.id = commandId; commandItem.item = item; commandItems.Add(commandItem); commandId++; } } base.OnBeforeContextMenu(browser, frame, state, 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); }
public void Populate(ref CefMenuModel model, CefContextMenuParams context) { if (ShouldPopulate(context)) { if (ChildItems != null && ChildItems.Count > 0) { var childMenu = model.AddSubMenu(Id, Title); AddChildItems(ref childMenu, context); } else { switch (Type) { case "radio": model.AddRadioItem(Id, Title, GroupId <= 0 ? 1 : GroupId); if (Checked) { model.SetChecked(Id, true); } break; case "checkbox": model.AddCheckItem(Id, Title); if (Checked) { model.SetChecked(Id, true); } break; case "separator": model.AddSeparator(); break; default: model.AddItem(Id, Title); break; } } } }
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); } }