Ejemplo n.º 1
0
 /// <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);
 }
Ejemplo n.º 2
0
 protected override void OnBeforeContextMenu(CefBrowser browser, CefFrame frame, CefContextMenuParams state, CefMenuModel model)
 {
     model.Clear();
 }
Ejemplo n.º 3
0
 internal BeforeContextMenuEventArgs(CefFrame frame, CefContextMenuParams state, CefMenuModel model)
 {
     Frame = frame;
     State = state;
     Model = model;
 }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 5
0
        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);
            }
        }
Ejemplo n.º 6
0
        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");
        }
Ejemplo n.º 7
0
        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);
        }
Ejemplo n.º 8
0
 protected override void OnBeforeContextMenu(CefBrowser browser, CefFrame frame, CefContextMenuParams state, CefMenuModel model)
 {
     model.Clear();
 }
Ejemplo n.º 9
0
 protected override void OnBeforeContextMenu(CefBrowser browser, CefFrame frame, CefContextMenuParams state, CefMenuModel model)
 {
     if (OwnerWebView.DisableBuiltinContextMenus)
     {
         model.Clear();
     }
 }
Ejemplo n.º 10
0
 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");
 }
Ejemplo n.º 11
0
 protected override bool OnContextMenuCommand(CefBrowser browser, CefFrame frame, CefContextMenuParams state, int commandId, CefEventFlags eventFlags)
 {
     //return base.OnContextMenuCommand(browser, frame, state, commandId, eventFlags);
     return(false);
 }
Ejemplo n.º 12
0
        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);
        }
Ejemplo n.º 13
0
 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);
 }
Ejemplo n.º 15
0
 protected override void OnBeforeContextMenu(CefBrowser browser, CefFrame frame, CefContextMenuParams state, CefMenuModel model)
 {
     // デフォルトのコンテキストメニューを無効化
     model.Clear();
 }
Ejemplo n.º 16
0
        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);
        }
Ejemplo n.º 17
0
        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);
        }
Ejemplo n.º 18
0
 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.查看源);
 }
Ejemplo n.º 19
0
 protected internal unsafe override void OnBeforeContextMenu(CefBrowser browser, CefFrame frame, CefContextMenuParams @params, CefMenuModel model)
 {
     _implementation.OnBeforeContextMenu(browser, frame, @params, model);
 }
Ejemplo n.º 20
0
        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);
            }
        }
Ejemplo n.º 21
0
 protected internal unsafe override bool RunContextMenu(CefBrowser browser, CefFrame frame, CefContextMenuParams @params, CefMenuModel model, CefRunContextMenuCallback callback)
 {
     return(_implementation.RunContextMenu(browser, frame, @params, model, callback));
 }
Ejemplo n.º 22
0
        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);
        }
Ejemplo n.º 23
0
 protected internal unsafe override bool OnContextMenuCommand(CefBrowser browser, CefFrame frame, CefContextMenuParams @params, int commandId, CefEventFlags eventFlags)
 {
     return(_implementation.OnContextMenuCommand(browser, frame, @params, commandId, eventFlags));
 }
Ejemplo n.º 24
0
        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));
        }
Ejemplo n.º 25
0
 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);
 }
Ejemplo n.º 26
0
        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);;
        }
Ejemplo n.º 27
0
 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));
 }
Ejemplo n.º 28
0
        /// <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);
        }
Ejemplo n.º 29
0
 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));
 }