Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public sealed class WindowBrowserCreator : nsIWindowCreator2
- {
- public Form m_Parent;
- public TabControl tabControlMain;
- public WindowBrowserCreator(Form p_Parent)
- {
- this.m_Parent = p_Parent;
- }
- public nsIWebBrowserChrome CreateChromeWindow(nsIWebBrowserChrome parent, uint chromeFlags)
- {
- bool bCancel = false;
- return CreateWindow(parent, chromeFlags, 0, null, ref bCancel);
- }
- public nsIWebBrowserChrome CreateChromeWindow2(nsIWebBrowserChrome parent, uint chromeFlags, uint contextFlags, nsIURI uri, nsITabParent aOpeningTab, ref bool cancel)
- {
- return CreateWindow(parent, chromeFlags, contextFlags, uri, ref cancel);
- }
- private nsIWebBrowserChrome CreateWindow(nsIWebBrowserChrome parent, uint chromeFlags, uint contextFlags, nsIURI uri, ref bool cancel)
- {
- GeckoWindowFlags flags = (GeckoWindowFlags)chromeFlags;
- if ((flags & GeckoWindowFlags.OpenAsChrome) != 0)
- {
- // create the child window
- nsIXULWindow xulChild = AppShellService.CreateTopLevelWindow(null, null, chromeFlags, -1, -1);
- // this little gem allows the GeckoWebBrowser to be properly activated when it gains the focus again
- if (parent is GeckoWebBrowser && (flags & GeckoWindowFlags.OpenAsDialog) != 0)
- {
- EventHandler gotFocus = null;
- gotFocus = delegate(object sender, EventArgs e)
- {
- var br = (sender as GeckoWebBrowser);
- if (br != null)
- {
- br.GotFocus -= gotFocus;
- br.WebBrowserFocus.Activate();
- }
- };
- var parBr = parent as GeckoWebBrowser;
- parBr.GotFocus += gotFocus;
- }
- // return the chrome
- return Xpcom.QueryInterface<nsIWebBrowserChrome>(xulChild);
- }
- nsIWebBrowserChrome oBrowser = AddNewTab();
- oBrowser.SetChromeFlagsAttribute(chromeFlags);
- return oBrowser;
- }
- public void SetScreenId(uint aScreenId)
- {
- throw new NotImplementedException();
- }
- internal nsIWebBrowserChrome AddNewTab()
- {
- GeckoWebBrowser gwBrowserTabPop = new GeckoWebBrowser();
- TabPage oTabPage = new TabPage("New Tab");
- Padding oPadding = oTabPage.Margin; oPadding.All = 0;
- oPadding = oTabPage.Padding; oPadding.All = 0;
- oTabPage.Controls.Add(gwBrowserTabPop);
- gwBrowserTabPop.Dock = DockStyle.Fill;
- tabControlMain.TabPages.Add(oTabPage);
- return gwBrowserTabPop;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement