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);