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");
     }
 }
Exemple #2
0
        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();
        }
Exemple #3
0
        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");
        }
Exemple #4
0
        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");
        }
Exemple #5
0
        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();
        }
Exemple #6
0
        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;
        }
Exemple #7
0
        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;
        }
Exemple #8
0
 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");
        }
Exemple #10
0
        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();
            }
        }
Exemple #11
0
        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");
        }
Exemple #12
0
        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));
        }
Exemple #14
0
 /// <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;
        }
Exemple #18
0
        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);
 }
Exemple #21
0
        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);
 }
Exemple #24
0
 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;
 }
Exemple #26
0
 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");
        }
        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();
        }
Exemple #30
0
 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;
        }
Exemple #32
0
 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);
            }
        }
Exemple #34
0
 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);
 }
Exemple #37
0
        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();
            });
        }
Exemple #38
0
        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");
        }
Exemple #39
0
        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);
        }
Exemple #40
0
 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");
 }
Exemple #41
0
        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();
        }
 /// <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);
 }
Exemple #43
0
 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");
            }

        }