public void OnLinkClicked(object sender, HtmlLinkClickedEventArgs e)
 {
     if (LinkClicked != null)
     {
         LinkClicked(sender, e);
     }
 }
Пример #2
0
        /// <summary>
        /// Handle mouse up to handle selection and link click.
        /// </summary>
        /// <param name="parent">the control hosting the html to invalidate</param>
        /// <param name="e">the mouse event args</param>
        public void HandleMouseUp(Control parent, MouseEventArgs e)
        {
            ArgChecker.AssertArgNotNull(parent, "parent");
            ArgChecker.AssertArgNotNull(e, "e");

            if (_selectionHandler != null)
            {
                var inSelection = _selectionHandler.HandleMouseUp(parent, e.Button);
                if (!inSelection && (e.Button & MouseButtons.Left) != 0)
                {
                    var loc  = OffsetByScroll(e.Location);
                    var link = DomUtils.GetLinkBox(_root, loc);
                    if (link != null)
                    {
                        if (LinkClicked != null)
                        {
                            var args = new HtmlLinkClickedEventArgs(link.GetAttribute("href"));
                            LinkClicked(this, args);
                            if (args.Handled)
                            {
                                return;
                            }
                        }

                        CssValueParser.GoLink(link.GetAttribute("href", string.Empty), Bridge);
                    }
                }
            }
        }
Пример #3
0
 /// <summary>
 /// Propagate the LinkClicked event from root container.
 /// </summary>
 private void OnLinkClicked(object sender, HtmlLinkClickedEventArgs e)
 {
     if (LinkClicked != null)
     {
         LinkClicked(this, e);
     }
 }
Пример #4
0
        /// <summary>
        /// Handle link clicked going over <see cref="LinkClicked"/> event and using <see cref="Process.Start()"/> if not canceled.
        /// </summary>
        /// <param name="parent">the control hosting the html to invalidate</param>
        /// <param name="location">the location of the mouse</param>
        /// <param name="link">the link that was clicked</param>
        internal void HandleLinkClicked(RControl parent, RPoint location, CssBox link)
        {
            if (LinkClicked != null)
            {
                var args = new HtmlLinkClickedEventArgs(link.HrefLink, link.HtmlTag.Attributes);
                try
                {
                    LinkClicked(this, args);
                }
                catch (Exception ex)
                {
                    throw new HtmlLinkClickedException("Error in link clicked intercept", ex);
                }
                if (args.Handled)
                {
                    return;
                }
            }

            if (!string.IsNullOrEmpty(link.HrefLink))
            {
                if (link.HrefLink.StartsWith("#") && link.HrefLink.Length > 1)
                {
                    if (ScrollChange != null)
                    {
                        var rect = GetElementRectangle(link.HrefLink.Substring(1));
                        if (rect.HasValue)
                        {
                            ScrollChange(this, new HtmlScrollEventArgs(rect.Value.Location));
                            HandleMouseMove(parent, location);
                        }
                    }
                }
                else
                {
                    if (!string.IsNullOrEmpty(link.HrefLink) && Directory.Exists(link.HrefLink))
                    {
                        Process.Start("explorer.exe", "\"" + link.HrefLink + "\"");
                    }
                    else
                    {
                        if (!string.IsNullOrEmpty(link.HrefLink) && File.Exists(link.HrefLink))
                        {
                            var process = new ProcessStartInfo(link.HrefLink)
                            {
                                UseShellExecute = true
                            };
                            Process.Start(process);
                        }
                        else
                        {
                            if (new Regex(@"^(ht|f)tp(s?)\:\/\/[0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*(:(0-9)*)*(\/?)([a-zA-Z0-9\-\.\?\,\'\/\\\+&amp;%\$#_]*)?$").Match(link.HrefLink).Success)
                            {
                                Process.Start(link.HrefLink);
                            }
                        }
                    }
                }
            }
        }
Пример #5
0
        private async void htmlContent_LinkClicked(object sender, HtmlLinkClickedEventArgs evt)
        {
            Uri newUri;

            Log.Debug(evt.Link);

            if (evt.Link.StartsWith("gemini://"))
            {
                evt.Handled = true;
            }

            try {
                newUri = new Uri(evt.Link);
            } catch (Exception) {
                try {
                    newUri = new Uri(history[historyPos], evt.Link);
                } catch (Exception e2) {
                    Log.Error(e2, "Invalid URL");
                    lblStatus.Text   = "Error loading page";
                    htmlContent.Text = string.Format("Could not load page {0}", evt.Link);
                    return;
                }
            }

            if (await Navigate(newUri))
            {
                UpdateHistory(newUri);
            }
        }
Пример #6
0
 private void HtmlOnLinkClicked(object sender, HtmlLinkClickedEventArgs htmlLinkClickedEventArgs)
 {
     if (htmlLinkClickedEventArgs.Link.Equals("update"))
     {
         UpdateHandler.CheckForUpdate();
         htmlLinkClickedEventArgs.Handled = true;
     }
 }
Пример #7
0
        /// <summary>
        /// Propagate the LinkClicked event from root container.
        /// </summary>
        protected virtual void OnLinkClicked(HtmlLinkClickedEventArgs e)
        {
            var handler = LinkClicked;

            if (handler != null)
            {
                handler(this, e);
            }
        }
Пример #8
0
 private void OnLinkClicked(object sender, HtmlLinkClickedEventArgs e)
 {
     if (CheckAccess())
     {
         OnLinkClicked(e);
     }
     else
     {
         Dispatcher.UIThread.InvokeAsync(() => OnLinkClicked(e)).Wait();
     }
 }
Пример #9
0
 private void OnLinkClicked(object sender, HtmlLinkClickedEventArgs e)
 {
     if (CheckAccess())
     {
         OnLinkClicked(e);
     }
     else
     {
         Dispatcher.Invoke(new Action <HtmlLinkClickedEventArgs>(OnLinkClicked), e);
     }
 }
Пример #10
0
        /// <summary>
        /// Handles the clicks on the link displayed in the tooltip
        /// </summary>
        /// <param name="htmlLinkClickedEventArgs"></param>
        private static void ClickHandler(HtmlLinkClickedEventArgs htmlLinkClickedEventArgs)
        {
            var  split      = htmlLinkClickedEventArgs.Link.Split('#');
            var  actionType = split[0];
            bool handled    = true;

            switch (actionType)
            {
            case "gotoownerfile":
                if (split.Length > 1)
                {
                    Npp.Goto(split[1]);
                    Close();
                }
                break;

            case "trigger":
                if (split.Length > 1)
                {
                    var fullPath = ProEnvironment.Current.FindFirstFileInEnv(split[1]);
                    Npp.Goto(string.IsNullOrEmpty(fullPath) ? split[1] : fullPath);
                    Close();
                }
                break;

            case "proto":
                if (split.Length > 3)
                {
                    Npp.Goto(split[1], int.Parse(split[2]), int.Parse(split[3]));
                    Close();
                }
                break;

            case "gotodefinition":
                ProMisc.GoToDefinition();
                break;

            case "nexttooltip":
                IndexToShow++;
                TryToShowIndex();
                break;

            default:
                handled = false;
                break;
            }
            htmlLinkClickedEventArgs.Handled = handled;
        }
Пример #11
0
        /// <summary>
        /// On specific link click handle it here.
        /// </summary>
        void OnLinkClicked(object sender, HtmlLinkClickedEventArgs e)
        {
            if (e.Link == "SayHello")
            {
                new Alt.GUI.Temporary.Gwen.Control.MessageBox(GetCanvas(), "Hello you!", "Link Clicked");

                e.Handled = true;
            }
            else if (e.Link == "ShowSampleForm")
            {
                //NoNeed	HtmlRenderer.SampleForm f =
                new HtmlRenderer.SampleForm(this);

                e.Handled = true;
            }
        }
Пример #12
0
 /// <summary>
 /// On specific link click handle it here.
 /// </summary>
 private static void OnLinkClicked(object sender, HtmlLinkClickedEventArgs e)
 {
     if (e.Link == "SayHello")
     {
         MessageBox.Show("Hello you!");
         e.Handled = true;
     }
     else if (e.Link == "ShowSampleForm")
     {
         using (SampleForm f = new SampleForm())
         {
             f.ShowDialog();
             e.Handled = true;
         }
     }
 }
Пример #13
0
        /// <summary>
        /// Handle link clicked going over <see cref="LinkClicked"/> event and using <see cref="Process.Start()"/> if not canceled.
        /// </summary>
        /// <param name="parent">the control hosting the html to invalidate</param>
        /// <param name="location">the location of the mouse</param>
        /// <param name="link">the link that was clicked</param>
        internal void HandleLinkClicked(RControl parent, RPoint location, CssBox link)
        {
            EventHandler <HtmlLinkClickedEventArgs> clickHandler = LinkClicked;

            if (clickHandler != null)
            {
                var args = new HtmlLinkClickedEventArgs(link.HrefLink, link.HtmlTag.Attributes);
                try
                {
                    clickHandler(this, args);
                }
                catch (Exception ex)
                {
                    throw new HtmlLinkClickedException("Error in link clicked intercept", ex);
                }
                if (args.Handled)
                {
                    return;
                }
            }

            if (!string.IsNullOrEmpty(link.HrefLink))
            {
                if (link.HrefLink.StartsWith("#") && link.HrefLink.Length > 1)
                {
                    EventHandler <HtmlScrollEventArgs> scrollHandler = ScrollChange;
                    if (scrollHandler != null)
                    {
                        var rect = GetElementRectangle(link.HrefLink.Substring(1));
                        if (rect.HasValue)
                        {
                            scrollHandler(this, new HtmlScrollEventArgs(rect.Value.Location));
                            HandleMouseMove(parent, location);
                        }
                    }
                }

                /*
                 * else
                 * {
                 *  var nfo = new ProcessStartInfo(link.HrefLink);
                 *  nfo.UseShellExecute = true;
                 *  Process.Start(nfo);
                 * }
                 */
            }
        }
Пример #14
0
    void _html_LinkClicked(object sender, HtmlLinkClickedEventArgs e)
    {
        e.Handled = true;
        var s = e.Link;

        if (s == "?")
        {
            ZSetText(c_aboutHtml);
        }
        else if (s.Starts('#'))            //anchor
        {
            e.Handled = false;
        }
        else
        {
            AExec.TryRun(s);
        }
    }
Пример #15
0
        /// <summary>
        /// Handle link clicked going over <see cref="LinkClicked"/> event and using <see cref="Process.Start()"/> if not canceled.
        /// </summary>
        /// <param name="link">the link that was clicked</param>
        internal void HandleLinkClicked(CssBox link)
        {
            if (LinkClicked != null)
            {
                var args = new HtmlLinkClickedEventArgs(link.HrefLink, link.HtmlTag.Attributes);
                LinkClicked(this, args);
                if (args.Handled)
                {
                    return;
                }
            }

            if (!string.IsNullOrEmpty(link.HrefLink))
            {
                var nfo = new ProcessStartInfo(link.HrefLink);
                nfo.UseShellExecute = true;
                Process.Start(nfo);
            }
        }
Пример #16
0
 /// <summary>
 /// Simple click handler that opens any link as a file (either in notepad++ if the extension is known,
 /// or with the default program, or as a folder in the explorer)
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="htmlLinkClickedEventArgs"></param>
 public static void OpenPathClickHandler(object sender, HtmlLinkClickedEventArgs htmlLinkClickedEventArgs)
 {
     if (htmlLinkClickedEventArgs.Link.Contains("|"))
     {
         var splitted = htmlLinkClickedEventArgs.Link.Split('|');
         if (splitted.Length == 2)
         {
             Npp.Goto(splitted[0], int.Parse(splitted[1]));
         }
         else
         {
             Npp.Goto(splitted[0], int.Parse(splitted[1]), int.Parse(splitted[2]));
         }
         htmlLinkClickedEventArgs.Handled = true;
     }
     else
     {
         htmlLinkClickedEventArgs.Handled = OpenAnyLink(htmlLinkClickedEventArgs.Link);
     }
 }
Пример #17
0
        /// <summary>
        /// Handle link clicked going over <see cref="LinkClicked"/> event and using <see cref="Process.Start()"/> if not canceled.
        /// </summary>
        /// <param name="parent">the control hosting the html to invalidate</param>
        /// <param name="e">the mouse event args</param>
        /// <param name="link">the link that was clicked</param>
        internal void HandleLinkClicked(Control parent, MouseEventArgs e, CssBox link)
        {
            if (LinkClicked != null)
            {
                var args = new HtmlLinkClickedEventArgs(link.HrefLink, link.HtmlTag.Attributes);
                try
                {
                    LinkClicked(this, args);
                }
                catch (Exception ex)
                {
                    throw new HtmlLinkClickedException("Error in link clicked intercept", ex);
                }
                if (args.Handled)
                {
                    return;
                }
            }

            if (!string.IsNullOrEmpty(link.HrefLink))
            {
                if (link.HrefLink.StartsWith("#") && link.HrefLink.Length > 1)
                {
                    if (ScrollChange != null)
                    {
                        RectangleF?rect = GetElementRectangle(link.HrefLink.Substring(1));
                        if (rect.HasValue)
                        {
                            ScrollChange(this, new HtmlScrollEventArgs(Point.Round(rect.Value.Location)));
                            HandleMouseMove(parent, e);
                        }
                    }
                }
                else
                {
                    var nfo = new ProcessStartInfo(link.HrefLink);
                    nfo.UseShellExecute = true;
                    Process.Start(nfo);
                }
            }
        }
Пример #18
0
 private void htmlPanel_LinkClicked(object sender, HtmlLinkClickedEventArgs e)
 {
     e.Handled = true;
 }
Пример #19
0
 /// <summary>
 /// Propagate the LinkClicked event from root container.
 /// </summary>
 protected virtual void OnLinkClicked(HtmlLinkClickedEventArgs e) => RaiseRouted(LinkClickedEvent, e);
Пример #20
0
 private void OnLinkClicked(object sender, HtmlLinkClickedEventArgs e)
 {
     OnLinkClicked(e);
 }
Пример #21
0
        private async void HtmlPanel1_LinkClicked(object sender, HtmlLinkClickedEventArgs e)
        {
            await m_server.Go(e.Link);

            //htmlPanel1.Text = m_server.Html;
        }
Пример #22
0
 /// <summary>
 /// Handle links clicked in the label.
 /// </summary>
 /// <param name="sender">The control</param>
 /// <param name="args">The link click arguments</param>
 private void OnLinkClicked(object sender, HtmlLinkClickedEventArgs args)
 {
     _layout.Container.RaiseLink(args.Link);
     args.Handled = true;
 }
Пример #23
0
 /// <summary>
 /// On specific link click handle it here.
 /// </summary>
 void OnLinkClicked(object sender, HtmlLinkClickedEventArgs e)
 {
 }
Пример #24
0
        /// <summary>
        /// Propagate the LinkClicked event from root container.
        /// </summary>
        protected virtual void OnLinkClicked(HtmlLinkClickedEventArgs e)
        {
            RoutedEventArgs newEventArgs = new RoutedEvenArgs <HtmlLinkClickedEventArgs>(LinkClickedEvent, this, e);

            RaiseEvent(newEventArgs);
        }
Пример #25
0
 /// <summary>
 /// Propagate the LinkClicked event from root container.
 /// </summary>
 protected virtual void OnLinkClicked(HtmlLinkClickedEventArgs e)
 {
     LinkClicked?.Invoke(this, e);
 }