Mercurial > projects > dwt-linux
diff dwt/browser/Mozilla.d @ 348:9a4d7706df52
Test Update to fix linux XPCOM interface issues
author | John Reimer <terminal.node@gmail.com> |
---|---|
date | Fri, 31 Oct 2008 21:46:44 -0700 |
parents | 2e591eb01162 |
children | 373b48b9eaf0 |
line wrap: on
line diff
--- a/dwt/browser/Mozilla.d Wed Oct 29 20:12:27 2008 -0700 +++ b/dwt/browser/Mozilla.d Fri Oct 31 21:46:44 2008 -0700 @@ -255,6 +255,7 @@ }; } +extern(D) public void create (Composite parent, int style) { mozDelegate = new MozillaDelegate (super.browser); Display display = parent.getDisplay (); @@ -1403,6 +1404,7 @@ } } +extern(D) public bool back () { if (awaitingNavigate) return false; @@ -1418,6 +1420,7 @@ return rc is XPCOM.NS_OK; } +extern(D) public bool execute (String script) { if (awaitingNavigate) return false; @@ -1437,10 +1440,12 @@ return rc is XPCOM.NS_OK; } +extern(D) static Browser findBrowser (void* handle) { return MozillaDelegate.findBrowser (cast(GtkWidget*)handle); } +extern(D) public bool forward () { if (awaitingNavigate) return false; @@ -1457,6 +1462,7 @@ return rc is XPCOM.NS_OK; } +extern(D) public String getText () { if (awaitingNavigate) return ""; //$NON-NLS-1$ @@ -1525,6 +1531,7 @@ return chars.dup; } +extern(D) public String getUrl () { if (awaitingNavigate) return ""; //$NON-NLS-1$ @@ -1563,6 +1570,7 @@ return location; } +extern(D) public Object getWebBrowser () { if ((browser.getStyle () & DWT.MOZILLA) is 0) return null; if (webBrowserObject !is null) return webBrowserObject; @@ -1592,6 +1600,7 @@ return null; } +extern(D) public bool isBackEnabled () { if (awaitingNavigate) return false; @@ -1608,6 +1617,7 @@ return aCanGoBack !is 0; } +extern(D) public bool isForwardEnabled () { if (awaitingNavigate) return false; @@ -1624,10 +1634,12 @@ return aCanGoForward !is 0; } +extern(D) static String error (int code) { throw new DWTError ("XPCOM error " ~ Integer.toString(code)); //$NON-NLS-1$ } +extern(D) void onDispose (Display display) { int rc = webBrowser.RemoveWebBrowserListener (cast(nsIWeakReference)this, &nsIWebProgressListener.IID); if (rc !is XPCOM.NS_OK) error (rc); @@ -1686,6 +1698,7 @@ BrowserCount--; } +extern(D) void Activate () { //int /*long*/[] result = new int /*long*/[1]; nsIWebBrowserFocus webBrowserFocus; @@ -1698,7 +1711,8 @@ if (rc !is XPCOM.NS_OK) error (rc); webBrowserFocus.Release (); } - + +extern(D) void Deactivate () { //int /*long*/[] result = new int /*long*/[1]; nsIWebBrowserFocus webBrowserFocus; @@ -1712,6 +1726,7 @@ webBrowserFocus.Release (); } +extern(D) void onResize () { Rectangle rect = browser.getClientArea (); int width = Math.max (1, rect.width); @@ -1730,6 +1745,7 @@ baseWindow.Release (); } +extern(D) public void refresh () { if (awaitingNavigate) return; @@ -1756,6 +1772,7 @@ if (rc !is XPCOM.NS_ERROR_INVALID_POINTER && rc !is XPCOM.NS_ERROR_FILE_NOT_FOUND) error (rc); } +extern(D) public bool setText (String html) { /* * Feature in Mozilla. The focus memory of Mozilla must be @@ -1880,6 +1897,7 @@ return true; } +extern(D) public bool setUrl (String url) { awaitingNavigate = false; @@ -1897,6 +1915,7 @@ return rc is XPCOM.NS_OK; } +extern(D) public void stop () { if (awaitingNavigate) return; @@ -1912,6 +1931,7 @@ webNavigation.Release (); } +extern(D) void hookDOMListeners (nsIDOMEventTarget target, bool isTop) { scope auto string = new nsEmbedString (XPCOM.DOMEVENT_FOCUS.toString16()); target.AddEventListener (cast(nsAString*)string, cast(nsIDOMEventListener)this, 0); @@ -1959,6 +1979,7 @@ //string.dispose (); } +extern(D) void unhookDOMListeners () { //int /*long*/[] result = new int /*long*/[1]; nsIDOMWindow window; @@ -2014,6 +2035,7 @@ window.Release (); } +extern(D) void unhookDOMListeners (nsIDOMEventTarget target) { scope auto string = new nsEmbedString (XPCOM.DOMEVENT_FOCUS.toString16()); target.RemoveEventListener (cast(nsAString*)string, cast(nsIDOMEventListener)this, 0); @@ -2055,6 +2077,7 @@ /* nsISupports */ +extern(System) nsresult QueryInterface (nsID* riid, void** ppvObject) { if (riid is null || ppvObject is null) return XPCOM.NS_ERROR_NO_INTERFACE; @@ -2117,11 +2140,13 @@ return XPCOM.NS_ERROR_NO_INTERFACE; } +extern(System) nsrefcnt AddRef () { refCount++; return refCount; } +extern(System) nsrefcnt Release () { refCount--; if (refCount is 0) return 0; @@ -2129,13 +2154,15 @@ } /* nsIWeakReference */ - + +extern(System) nsresult QueryReferent (nsID* riid, void** ppvObject) { return QueryInterface (riid, ppvObject); } /* nsIInterfaceRequestor */ +extern(System) nsresult GetInterface ( nsID* riid, void** ppvObject) { if (riid is null || ppvObject is null) return XPCOM.NS_ERROR_NO_INTERFACE; //nsID guid = new nsID (); @@ -2153,6 +2180,7 @@ return QueryInterface (riid, ppvObject); } +extern(System) nsresult GetWeakReference (nsIWeakReference* ppvObject) { *ppvObject = cast(nsIWeakReference)this; //XPCOM.memmove (ppvObject, new int /*long*/[] {weakReference.getAddress ()}, C.PTR_SIZEOF); @@ -2162,6 +2190,7 @@ /* nsIWebProgressListener */ +extern(System) nsresult OnStateChange (nsIWebProgress aWebProgress, nsIRequest aRequest, PRUint32 aStateFlags, nsresult aStatus) { if ((aStateFlags & nsIWebProgressListener.STATE_IS_DOCUMENT) is 0) return XPCOM.NS_OK; if ((aStateFlags & nsIWebProgressListener.STATE_START) !is 0) { @@ -2303,6 +2332,7 @@ return XPCOM.NS_OK; } +extern(System) nsresult OnProgressChange (nsIWebProgress aWebProgress, nsIRequest aRequest, PRInt32 aCurSelfProgress, PRInt32 aMaxSelfProgress, PRInt32 aCurTotalProgress, PRInt32 aMaxTotalProgress) { if (awaitingNavigate || super.progressListeners.length is 0) return XPCOM.NS_OK; ProgressEvent event = new ProgressEvent (browser); @@ -2316,6 +2346,7 @@ return XPCOM.NS_OK; } +extern(System) nsresult OnLocationChange (nsIWebProgress aWebProgress, nsIRequest aRequest, nsIURI aLocation) { /* * Feature in Mozilla. When a page is loaded via setText before a previous @@ -2383,6 +2414,7 @@ return XPCOM.NS_OK; } +extern(System) nsresult OnStatusChange (nsIWebProgress aWebProgress, nsIRequest aRequest, nsresult aStatus, PRUnichar* aMessage) { if (awaitingNavigate || statusTextListeners.length is 0) return XPCOM.NS_OK; StatusTextEvent event = new StatusTextEvent (browser); @@ -2398,12 +2430,14 @@ return XPCOM.NS_OK; } +extern(System) nsresult OnSecurityChange (nsIWebProgress aWebProgress, nsIRequest aRequest, PRUint32 state) { return XPCOM.NS_OK; } /* nsIWebBrowserChrome */ +extern(System) nsresult SetStatus (PRUint32 statusType, PRUnichar* status) { if (awaitingNavigate || statusTextListeners.length is 0) return XPCOM.NS_OK; StatusTextEvent event = new StatusTextEvent (browser); @@ -2420,6 +2454,7 @@ return XPCOM.NS_OK; } +extern(System) nsresult GetWebBrowser (nsIWebBrowser* aWebBrowser) { //int /*long*/[] ret = new int /*long*/[1]; if (webBrowser !is null) { @@ -2430,12 +2465,14 @@ return XPCOM.NS_OK; } +extern(System) nsresult SetWebBrowser (nsIWebBrowser aWebBrowser) { if (webBrowser !is null) webBrowser.Release (); webBrowser = aWebBrowser !is null ? cast(nsIWebBrowser)cast(void*)aWebBrowser : null; return XPCOM.NS_OK; } - + +extern(System) nsresult GetChromeFlags (PRUint32* aChromeFlags) { //int[] ret = new int[1]; *aChromeFlags = chromeFlags; @@ -2443,11 +2480,13 @@ return XPCOM.NS_OK; } +extern(System) nsresult SetChromeFlags (PRUint32 aChromeFlags) { chromeFlags = aChromeFlags; return XPCOM.NS_OK; } +extern(System) nsresult DestroyBrowserWindow () { WindowEvent newEvent = new WindowEvent (browser); newEvent.display = browser.getDisplay (); @@ -2464,7 +2503,8 @@ browser.dispose (); return XPCOM.NS_OK; } - + +extern(System) nsresult SizeBrowserTo (PRInt32 aCX, PRInt32 aCY) { size = new Point (aCX, aCY); bool isChrome = (chromeFlags & nsIWebBrowserChrome.CHROME_OPENAS_CHROME) !is 0; @@ -2475,6 +2515,7 @@ return XPCOM.NS_OK; } +extern(System) nsresult ShowAsModal () { //int /*long*/[] result = new int /*long*/[1]; nsIServiceManager serviceManager; @@ -2508,18 +2549,21 @@ return XPCOM.NS_OK; } +extern(System) nsresult IsWindowModal (PRBool* retval) { *retval = (chromeFlags & nsIWebBrowserChrome.CHROME_MODAL) !is 0 ? 1 : 0; //XPCOM.memmove (retval, new int[] {result}, 4); /* PRBool */ return XPCOM.NS_OK; } - + +extern(System) nsresult ExitModalEventLoop (nsresult aStatus) { return XPCOM.NS_OK; } /* nsIEmbeddingSiteWindow */ +extern(System) nsresult SetDimensions (PRUint32 flags, PRInt32 x, PRInt32 y, PRInt32 cx, PRInt32 cy) { if ((flags & nsIEmbeddingSiteWindow.DIM_FLAGS_POSITION) !is 0) { location = new Point (x, y); @@ -2534,6 +2578,7 @@ return XPCOM.NS_OK; } +extern(System) nsresult GetDimensions (PRUint32 flags, PRInt32* x, PRInt32* y, PRInt32* cx, PRInt32* cy) { if ((flags & nsIEmbeddingSiteWindow.DIM_FLAGS_POSITION) !is 0) { Point location = browser.getShell ().getLocation (); @@ -2553,6 +2598,7 @@ return XPCOM.NS_OK; } +extern(System) nsresult SetFocus () { //int /*long*/[] result = new int /*long*/[1]; nsIBaseWindow baseWindow; @@ -2573,6 +2619,7 @@ return XPCOM.NS_OK; } +extern(System) nsresult GetVisibility (PRBool* aVisibility) { bool visible = browser.isVisible () && !browser.getShell ().getMinimized (); *aVisibility = visible ? 1 : 0; @@ -2580,6 +2627,7 @@ return XPCOM.NS_OK; } +extern(System) nsresult SetVisibility (PRBool aVisibility) { if (isChild) { WindowEvent event = new WindowEvent (browser); @@ -2617,10 +2665,12 @@ return XPCOM.NS_OK; } +extern(System) nsresult GetTitle (PRUnichar** aTitle) { return XPCOM.NS_OK; } +extern(System) nsresult SetTitle (PRUnichar* aTitle) { if (awaitingNavigate || titleListeners.length is 0) return XPCOM.NS_OK; TitleEvent event = new TitleEvent (browser); @@ -2645,6 +2695,7 @@ return XPCOM.NS_OK; } +extern(System) nsresult GetSiteWindow (void** aSiteWindow) { /* * Note. The handle is expected to be an HWND on Windows and @@ -2659,6 +2710,7 @@ /* nsIWebBrowserChromeFocus */ +extern(System) nsresult FocusNextElement () { /* * Bug in Mozilla embedding API. Mozilla takes back the focus after sending @@ -2675,6 +2727,7 @@ return XPCOM.NS_OK; } +extern(System) nsresult FocusPrevElement () { /* * Bug in Mozilla embedding API. Mozilla takes back the focus after sending @@ -2693,6 +2746,7 @@ /* nsIContextMenuListener */ +extern(System) nsresult OnShowContextMenu (PRUint32 aContextFlags, nsIDOMEvent aEvent, nsIDOMNode aNode) { if (awaitingNavigate) return XPCOM.NS_OK; @@ -2728,6 +2782,7 @@ /* nsIURIContentListener */ +extern(System) nsresult OnStartURIOpen (nsIURI aURI, PRBool* retval) { if (awaitingNavigate || locationListeners.length is 0) { *retval = 0; @@ -2772,10 +2827,12 @@ return XPCOM.NS_OK; } +extern(System) nsresult DoContent (char* aContentType, PRBool aIsContentPreferred, nsIRequest aRequest, nsIStreamListener* aContentHandler, PRBool* retval) { return XPCOM.NS_ERROR_NOT_IMPLEMENTED; } +extern(System) nsresult IsPreferred (char* aContentType, char** aDesiredContentType, PRBool* retval) { bool preferred = false; auto size = strlen (aContentType); @@ -2838,28 +2895,34 @@ return XPCOM.NS_OK; } +extern(System) nsresult CanHandleContent (char* aContentType, PRBool aIsContentPreferred, char** aDesiredContentType, PRBool* retval) { return XPCOM.NS_ERROR_NOT_IMPLEMENTED; } +extern(System) nsresult GetLoadCookie (nsISupports* aLoadCookie) { return XPCOM.NS_ERROR_NOT_IMPLEMENTED; } +extern(System) nsresult SetLoadCookie (nsISupports aLoadCookie) { return XPCOM.NS_ERROR_NOT_IMPLEMENTED; } +extern(System) nsresult GetParentContentListener (nsIURIContentListener* aParentContentListener) { return XPCOM.NS_ERROR_NOT_IMPLEMENTED; } - + +extern(System) nsresult SetParentContentListener (nsIURIContentListener aParentContentListener) { return XPCOM.NS_ERROR_NOT_IMPLEMENTED; } /* nsITooltipListener */ +extern(System) nsresult OnShowTooltip (PRInt32 aXCoords, PRInt32 aYCoords, PRUnichar* aTipText) { if (awaitingNavigate) return XPCOM.NS_OK; @@ -2892,6 +2955,7 @@ return XPCOM.NS_OK; } +extern(System) nsresult OnHideTooltip () { if (tip !is null && !tip.isDisposed ()) tip.dispose (); tip = null; @@ -2900,6 +2964,7 @@ /* nsIDOMEventListener */ +extern(System) nsresult HandleEvent (nsIDOMEvent event) { //nsIDOMEvent domEvent = new nsIDOMEvent (event);