Mercurial > projects > dwt-linux
comparison dwt/browser/WindowCreator2.d @ 346:2e591eb01162
Browser Package now compiles (phase 2 complete)
author | John Reimer <terminal.node@gmail.com> |
---|---|
date | Wed, 29 Oct 2008 20:06:08 -0700 |
parents | 3f4a5c7d138f |
children | 9a4d7706df52 |
comparison
equal
deleted
inserted
replaced
345:5abc6f7f7a95 | 346:2e591eb01162 |
---|---|
10 * Port to the D programming language: | 10 * Port to the D programming language: |
11 * John Reimer <terminal.node@gmail.com> | 11 * John Reimer <terminal.node@gmail.com> |
12 *******************************************************************************/ | 12 *******************************************************************************/ |
13 module dwt.browser.WindowCreator2; | 13 module dwt.browser.WindowCreator2; |
14 | 14 |
15 //import dwt.dwthelper.utils; | 15 import dwt.dwthelper.utils; |
16 | 16 |
17 import dwt.DWT; | 17 import dwt.DWT; |
18 import dwt.graphics.Point; | 18 import dwt.graphics.Point; |
19 //import dwt.internal.C; | 19 |
20 import dwt.internal.Platform; | 20 import dwt.internal.Platform; |
21 import dwt.internal.mozilla.Common; | 21 import dwt.internal.mozilla.Common; |
22 | 22 |
23 import XPCOM = dwt.internal.mozilla.XPCOM; | 23 import XPCOM = dwt.internal.mozilla.XPCOM; |
24 | 24 |
25 //import dwt.internal.mozilla.XPCOMObject; | |
26 import dwt.internal.mozilla.nsIBaseWindow; | 25 import dwt.internal.mozilla.nsIBaseWindow; |
27 import dwt.internal.mozilla.nsID; | 26 import dwt.internal.mozilla.nsID; |
28 import dwt.internal.mozilla.nsISupports; | 27 import dwt.internal.mozilla.nsISupports; |
29 import dwt.internal.mozilla.nsIURI; | 28 import dwt.internal.mozilla.nsIURI; |
30 import dwt.internal.mozilla.nsIWebBrowser; | 29 import dwt.internal.mozilla.nsIWebBrowser; |
31 import dwt.internal.mozilla.nsIWebBrowserChrome; | 30 import dwt.internal.mozilla.nsIWebBrowserChrome; |
32 import dwt.internal.mozilla.nsIWindowCreator; | 31 import dwt.internal.mozilla.nsIWindowCreator; |
33 import dwt.internal.mozilla.nsIWindowCreator2; | 32 import dwt.internal.mozilla.nsIWindowCreator2; |
33 import dwt.internal.mozilla.nsStringAPI; | |
34 import dwt.internal.mozilla.nsEmbedString; | |
35 | |
34 import dwt.layout.FillLayout; | 36 import dwt.layout.FillLayout; |
35 import dwt.widgets.Shell; | 37 import dwt.widgets.Shell; |
36 | 38 |
37 import dwt.browser.Browser; | 39 import dwt.browser.Browser; |
38 import dwt.browser.Mozilla; | 40 import dwt.browser.Mozilla; |
41 import dwt.browser.VisibilityWindowListener; | |
42 import dwt.browser.CloseWindowListener; | |
43 import dwt.browser.WindowEvent; | |
39 | 44 |
40 class WindowCreator2 : nsIWindowCreator2 { | 45 class WindowCreator2 : nsIWindowCreator2 { |
41 // XPCOMObject supports; | 46 // XPCOMObject supports; |
42 // XPCOMObject windowCreator; | 47 // XPCOMObject windowCreator; |
43 // XPCOMObject windowCreator2; | 48 // XPCOMObject windowCreator2; |
103 if (rc !is XPCOM.NS_OK) Mozilla.error (rc); | 108 if (rc !is XPCOM.NS_OK) Mozilla.error (rc); |
104 if (webBrowser is null) Mozilla.error (XPCOM.NS_ERROR_NO_INTERFACE); | 109 if (webBrowser is null) Mozilla.error (XPCOM.NS_ERROR_NO_INTERFACE); |
105 | 110 |
106 //nsIWebBrowser webBrowser = new nsIWebBrowser (aWebBrowser[0]); | 111 //nsIWebBrowser webBrowser = new nsIWebBrowser (aWebBrowser[0]); |
107 nsIBaseWindow baseWindow; | 112 nsIBaseWindow baseWindow; |
108 rc = webBrowser.QueryInterface (nsIBaseWindow.IID, cast(void**)&baseWindow); | 113 rc = webBrowser.QueryInterface (&nsIBaseWindow.IID, cast(void**)&baseWindow); |
109 if (rc !is XPCOM.NS_OK) Mozilla.error (rc); | 114 if (rc !is XPCOM.NS_OK) Mozilla.error (rc); |
110 if (baseWindow is null) Mozilla.error (XPCOM.NS_ERROR_NO_INTERFACE); | 115 if (baseWindow is null) Mozilla.error (XPCOM.NS_ERROR_NO_INTERFACE); |
111 webBrowser.Release (); | 116 webBrowser.Release (); |
112 | 117 |
113 //nsIBaseWindow baseWindow = new nsIBaseWindow (result[0]); | 118 //nsIBaseWindow baseWindow = new nsIBaseWindow (result[0]); |
149 shell.open (); | 154 shell.open (); |
150 } | 155 } |
151 }); | 156 }); |
152 browser.addCloseWindowListener (new class(shell) CloseWindowListener { | 157 browser.addCloseWindowListener (new class(shell) CloseWindowListener { |
153 Shell sh; | 158 Shell sh; |
154 this (Shell shell) { this.shell = shell; } | 159 this (Shell shell) { this.sh = shell; } |
155 public void close (WindowEvent event) { | 160 public void close (WindowEvent event) { |
156 sh.close (); | 161 sh.close (); |
157 } | 162 } |
158 }); | 163 }); |
159 if (uri !is null) { | 164 if (uri !is null) { |
166 // byte[] dest = new byte[length]; | 171 // byte[] dest = new byte[length]; |
167 //XPCOM.memmove (dest, buffer, length); | 172 //XPCOM.memmove (dest, buffer, length); |
168 browser.setUrl (aSpec.toString); | 173 browser.setUrl (aSpec.toString); |
169 } | 174 } |
170 } | 175 } |
171 XPCOM.nsEmbedCString_delete (aSpec); | 176 //XPCOM.nsEmbedCString_delete (aSpec); |
172 } | 177 } |
173 } else { | 178 } else { |
174 WindowEvent event = new WindowEvent (src); | 179 WindowEvent event = new WindowEvent (src); |
175 event.display = src.getDisplay (); | 180 event.display = src.getDisplay (); |
176 event.widget = src; | 181 event.widget = src; |
197 // in the Java SWT version. Watch this code section carefully for errors/bugs. -JJR | 202 // in the Java SWT version. Watch this code section carefully for errors/bugs. -JJR |
198 Mozilla mozilla = cast(Mozilla)browser.webBrowser; | 203 Mozilla mozilla = cast(Mozilla)browser.webBrowser; |
199 mozilla.isChild = true; | 204 mozilla.isChild = true; |
200 // And since Mozilla class implements the nsIWebBrowserChrome interface.... | 205 // And since Mozilla class implements the nsIWebBrowserChrome interface.... |
201 nsIWebBrowserChrome chrome; | 206 nsIWebBrowserChrome chrome; |
202 nsresult rc = mozilla.QueryInterface( nsIWebBrowserChrome.IID, cast(void**)&chrome); | 207 nsresult rc = mozilla.QueryInterface( &nsIWebBrowserChrome.IID, cast(void**)&chrome); |
203 if (rc !is XPCOM.NS_OK) Mozilla.error (rc); | 208 if (rc !is XPCOM.NS_OK) Mozilla.error (rc); |
204 //nsIWebBrowserChrome webBrowserChrome = new nsIWebBrowserChrome (chromePtr); | 209 //nsIWebBrowserChrome webBrowserChrome = new nsIWebBrowserChrome (chromePtr); |
205 chrome.SetChromeFlags (chromeFlags); | 210 chrome.SetChromeFlags (chromeFlags); |
206 //chrome.AddRef (); | 211 //chrome.AddRef (); |
207 //XPCOM.memmove (_retval, new int /*long*/[] {chromePtr}, C.PTR_SIZEOF); | 212 //XPCOM.memmove (_retval, new int /*long*/[] {chromePtr}, C.PTR_SIZEOF); |