protected void AddToolbarAndBrowserToTab(TabPage tabPage, GeckoWebBrowser browser) { TextBox urlbox = new TextBox(); urlbox.Top = 0; urlbox.Width = 200; Button nav = new Button(); nav.Text = "Go"; nav.Left = urlbox.Width; Button newTab = new Button(); newTab.Text = "NewTab"; newTab.Left = nav.Left + nav.Width; Button stop = new Button { Text = "Stop", Left = newTab.Left + newTab.Width }; Button closeTab = new Button(); closeTab.Text = "GC.Collect"; closeTab.Left = stop.Left + stop.Width; Button closeWithDisposeTab = new Button(); closeWithDisposeTab.Text = "Close"; closeWithDisposeTab.Left = closeTab.Left + closeTab.Width; Button open = new Button(); open.Text = "FileOpen"; open.Left = closeWithDisposeTab.Left + closeWithDisposeTab.Width; Button scrollDown = new Button { Text = "Down", Left = closeWithDisposeTab.Left + 250 }; Button scrollUp = new Button { Text = "Up", Left = closeWithDisposeTab.Left + 330 }; scrollDown.Click += (s, e) => { browser.Window.ScrollByPages(1); }; scrollUp.Click += (s, e) => { browser.Window.ScrollByPages(-1); }; nav.Click += delegate { // use javascript to warn if url box is empty. if (string.IsNullOrEmpty(urlbox.Text.Trim())) browser.Navigate("javascript:alert('hey try typing a url!');"); try{ browser.Navigate(urlbox.Text); }catch { } tabPage.Text = urlbox.Text; }; newTab.Click += delegate { AddTab(); }; stop.Click += delegate { browser.Stop(); }; closeTab.Click += delegate { GC.Collect(); GC.WaitForPendingFinalizers(); }; closeWithDisposeTab.Click += delegate { m_tabControl.Controls.Remove(tabPage); tabPage.Dispose(); }; open.Click += (s, a) => { nsIFilePicker filePicker = Xpcom.CreateInstance<nsIFilePicker>("@mozilla.org/filepicker;1"); filePicker.Init(browser.Window.DomWindow, new nsAString("hello"), nsIFilePickerConsts.modeOpen); filePicker.AppendFilter(new nsAString("png"), new nsAString("*.png")); filePicker.AppendFilter(new nsAString("html"), new nsAString("*.html")); if (nsIFilePickerConsts.returnOK == filePicker.Show()) { using(nsACString str = new nsACString()) { filePicker.GetFileAttribute().GetNativePathAttribute(str); browser.Navigate(str.ToString()); } } }; tabPage.Controls.Add(urlbox); tabPage.Controls.Add(nav); tabPage.Controls.Add(newTab); tabPage.Controls.Add(stop); tabPage.Controls.Add(closeTab); tabPage.Controls.Add(closeWithDisposeTab); tabPage.Controls.Add(open); tabPage.Controls.Add(browser); tabPage.Controls.Add(scrollDown); tabPage.Controls.Add(scrollUp); }
private static String GeckoGet(GeckoWebBrowser browser, Object url) { String u = url as String; if (u == null) return null; browser.DocumentCompleted += GeckoDocumentCompleted; browser.Stop(); browser.Navigate(u); GeckoWaitForComplete(browser); return GetGeckoContent(browser); }
private static String GeckoPost(GeckoWebBrowser browser, Object url, Object data) { String u = url as String; String d = data as String; if (u == null || d == null) { return null; } Gecko.IO.MimeInputStream post = Gecko.IO.MimeInputStream.Create(); //GeckoMIMEInputStream post = new GeckoMIMEInputStream(); post.SetData(d); post.AddHeader("Content-Type", "application/x-www-form-urlencoded"); post.AddContentLength = true; String referer = browser.ReferrerUrl.ToString(); browser.DocumentCompleted += GeckoDocumentCompleted; browser.Stop(); browser.Navigate(u, GeckoLoadFlags.None, referer, post); GeckoWaitForComplete(browser); return GetGeckoContent(browser); }
public static void GeckoStop(GeckoWebBrowser browser) { browser.Stop(); }