Пример #1
0
        public void UpdateWebImage()
        {
            SKCanvas canvas = Surface.Canvas;

            Surface.Canvas.Clear(Color.Gray.ToSKColor());
            NodePaint = new SKPaint()
            {
                Style = SKPaintStyle.Fill, Color = ((Color)Application.Current.Resources["TraceColor"]).ToSKColor()
            };
            LinePaint = new SKPaint()
            {
                Style = SKPaintStyle.Stroke, Color = ((Color)Application.Current.Resources["TraceColor"]).ToSKColor()
            };
            Task[] tasks = new Task[WebNodes.Count];
            int    x     = 0;

            foreach (WebNode node in WebNodes)
            {
                tasks[x++] = Task.Run(() =>
                {
                    canvas.DrawCircle((float)node.Position.X * PixelsPerPoint, (float)node.Position.Y * PixelsPerPoint, 4, NodePaint);
                    foreach (WebNode node2 in WebNodes)
                    {
                        double DistanceSquared = Math.Abs(node.Position.Y - node2.Position.Y) * Math.Abs(node.Position.Y - node2.Position.Y) + Math.Abs(node.Position.X - node2.Position.X) * Math.Abs(node.Position.X - node2.Position.X);
                        if (DistanceSquared < LinkLength.Value * LinkLength.Value)
                        {
                            canvas.DrawLine((float)node.Position.X * PixelsPerPoint, (float)node.Position.Y * PixelsPerPoint, (float)node2.Position.X * PixelsPerPoint, (float)node2.Position.Y * PixelsPerPoint, LinePaint);
                        }
                    }
                });
            }
            Task.WaitAll(tasks);
            WebDisplay.UpdateImage(Surface.Snapshot());
        }
Пример #2
0
 void dis_DocumentComplete(WebDisplay sender, ChromiumEngine.WindowsForms.EventArgs.UrlEventArgs e)
 {
     try
     {
         if (sender.Equals(Browser))
             pictureBox5.Image = Properties.Resources.Refresh;
         txturl.Text = e.Url;
         if (e.Url.StartsWith("https://"))
         {
             txturl.BackColor = Color.LightGreen;
             textBox2.BackColor = Color.LightGreen;
         }
         else
         {
             txturl.BackColor = Color.White;
             textBox2.BackColor = Color.White;
         }
      }
     catch { }
 }
Пример #3
0
 void dis_NewWindowRequested(WebDisplay sender, ChromiumEngine.WindowsForms.EventArgs.NewWindowRequestEventArgs e)
 {
     AddTab(e.Url);
 }
Пример #4
0
 void dis_StatusChanged(WebDisplay sender, ChromiumEngine.WindowsForms.EventArgs.StatusMessageEventArgs e)
 {
     try
     {
         status.Visible = !string.IsNullOrWhiteSpace(e.Text);
         if (status.Visible == false)
             return;
         if (e.Text.Length < 51)
             status.Text = e.Text;
         else
             status.Text = e.Text.Substring(0, 51) + "...";
     }
     catch { }
 }
Пример #5
0
 void dis_BeginDocumentLoading(WebDisplay sender, ChromiumEngine.WindowsForms.EventArgs.BeginFrameLoadingEventArgs e)
 {
     //try
     //{
         if (sender.Equals(Browser))
         {
             //faviconpct.SizeMode = PictureBoxSizeMode.StretchImage;
             pictureBox5.Image = Properties.Resources.stop;
             faviconpct.Image = Properties.Resources.loading;
             FaviconCollection[sender] = Properties.Resources.favicons;
             ImageAnimator.Animate(faviconpct.Image, delegate { faviconpct.Invalidate(); });
             
         }
         BackgroundWorker bcw = new BackgroundWorker() { WorkerSupportsCancellation = true };
             bcw.DoWork += delegate
             {
                 Image favicon = sender.GetFaviconImageFromDocument();
                 (sender.Parent as QTabPage).Icon = Icon.FromHandle(((Bitmap)favicon).GetHicon());
                 if (sender.Equals(Browser))
                 {
                     FaviconCollection[sender] = favicon;
                     faviconpct.Image = favicon;
                 }
                 History.Add(sender.DocumentTitle, sender.Url, DateTime.Now, Bookmarking.ImageToBase64(favicon, System.Drawing.Imaging.ImageFormat.Icon));
                 bcw.Dispose();
             };
             bcw.RunWorkerAsync();
     //}
     //catch { }
 }
Пример #6
0
 void dis_ShowJSDialog(WebDisplay sender, ChromiumEngine.WindowsForms.EventArgs.ShowJSDialogEventArgs e)
 {
     switch (e.Type)
     {
         case ChromiumEngine.Enum.JSDialogType.Alert:
             MessageBox.Show(e.Message, "The current page says:");
             break;
         case ChromiumEngine.Enum.JSDialogType.Confirm:
             e.Result = MessageBox.Show(e.Message, "The current page asks:", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.OK;
             break;
         case ChromiumEngine.Enum.JSDialogType.Prompt:
             e.PromptInputText = Microsoft.VisualBasic.Interaction.InputBox(e.Message, "The page requests the following:", e.DefaultPromptInputText);
             e.Result = true;
             break;
     }
     e.Handled = true;
 }
Пример #7
0
 void dis_AddressChanged(WebDisplay sender, ChromiumEngine.WindowsForms.EventArgs.AddresseChangedEventArgs e)
 {
     try
     {
         if (sender.Equals(Browser))
             txturl.Text = e.Url;
     }
     catch { }
 }
Пример #8
0
 void dis_BeginFrameLoading(WebDisplay sender, BeginFrameLoadingEventArgs e)
 {
     if (sender.Equals(Browser))
     {
         dis_StatusChanged(sender, new StatusMessageEventArgs("Loading " + e.Frame.Url, ChromiumEngine.Enum.StatusMessageType.Text));
         pictureBox5.Image = Properties.Resources.stop;
         faviconpct.Image = Properties.Resources.loading;
         ImageAnimator.Animate(faviconpct.Image, delegate { faviconpct.Invalidate(); });
             
     }
 }
Пример #9
0
 private void dis_FrameComplete(WebDisplay sender, FrameCompleteEventArgs e)
 {
     if (sender.Equals(Browser))
     {
         dis_StatusChanged(sender, new StatusMessageEventArgs(string.Empty, ChromiumEngine.Enum.StatusMessageType.Text));
         pictureBox5.Image = Properties.Resources.Refresh;
         faviconpct.Image = FaviconCollection[sender];
     }
 }
Пример #10
0
 internal void AddEvents(WebDisplay dis)
 {
     dis.DocumentComplete += dis_DocumentComplete;
     dis.BeginFrameLoading += dis_BeginDocumentLoading;
     dis.StatusChanged += dis_StatusChanged;
     dis.DocumentTitleChanged += delegate(WebDisplay sender, DocumentTitleChangedEventArgs e) { sender.Parent.Text = e.Title; };
     dis.BeginFrameLoading += dis_BeginFrameLoading;
     dis.FrameComplete +=dis_FrameComplete;
     dis.NewWindowRequested += dis_NewWindowRequested;
     dis.AddressChanged += dis_AddressChanged;
     dis.ShowJSDialog += dis_ShowJSDialog;
 }
Пример #11
0
 public void AddTab(string u = "")
 { 
     QTabPage tbp = new QTabPage();
     tbp.Text = "No Title";
     WebDisplay view = new WebDisplay();
     WebPreferences prefs = new WebPreferences();
     prefs.UniversalAccessFromFileUrlsAllowed = false;
     prefs.WebGLDisabled = false;
     view.Preferences = prefs;
     view.InitializeEngine("about:blank");
     view.Focus();
     tbp.Controls.Add(view);
     TabC.Controls.Add(tbp);
     TabC.ActiveTabPage = tbp;
     view.Anchor = (AnchorStyles)(AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right | AnchorStyles.Top);
     if (panel1.Visible == false)
     {
         view.Size = new System.Drawing.Size(tbp.Width, tbp.Height);
         view.Location = new Point(0, 0);
     }
     else
     {
         view.Size = new System.Drawing.Size(tbp.Width, tbp.Height - panel1.Height);
         view.Location = new Point(0, panel1.Height);
     }
     //ShowNavBar(view);
     if (!string.IsNullOrEmpty(u))
         if (u.Contains("\\") && !u.StartsWith("file://"))
             view.OpenDocument();
         else if (IsURL(u))
             view.Navigate(u);
         else
             Search(u);
     OnTabChangedTriggered();
     DoOverflow();
     AddEvents(view);
     FaviconCollection.Add(view, Properties.Resources.favicons);
     view.Disposed += delegate(object sender, EventArgs e) { FaviconCollection.Remove((WebDisplay)sender); };
     //AddContextMenus(view);
    btnaddtab.Left = tbp.TabButton.Left + tbp.TabButton.Width - 5;
 }