Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'bundles/org.eclipse.swt/Eclipse SWT WebKit/win32/org/eclipse/swt/browser/WebUIDelegate.java')
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT WebKit/win32/org/eclipse/swt/browser/WebUIDelegate.java735
1 files changed, 0 insertions, 735 deletions
diff --git a/bundles/org.eclipse.swt/Eclipse SWT WebKit/win32/org/eclipse/swt/browser/WebUIDelegate.java b/bundles/org.eclipse.swt/Eclipse SWT WebKit/win32/org/eclipse/swt/browser/WebUIDelegate.java
deleted file mode 100644
index eb9892cf19..0000000000
--- a/bundles/org.eclipse.swt/Eclipse SWT WebKit/win32/org/eclipse/swt/browser/WebUIDelegate.java
+++ /dev/null
@@ -1,735 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2010, 2017 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.browser;
-
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.internal.*;
-import org.eclipse.swt.internal.ole.win32.*;
-import org.eclipse.swt.internal.webkit.*;
-import org.eclipse.swt.internal.win32.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-
-class WebUIDelegate {
- COMObject iWebUIDelegate;
- int refCount = 0;
-
- String lastHoveredLinkURL;
- Browser browser;
- Point size;
- Point location;
- boolean menuBar = true, toolBar = true, statusBar = true;
- boolean prompt = true;
-
-WebUIDelegate (Browser browser) {
- createCOMInterfaces ();
- this.browser = browser;
-}
-
-int AddRef () {
- refCount++;
- return refCount;
-}
-
-int canTakeFocus (long /*int*/ sender, int forward, long /*int*/ result) {
- OS.MoveMemory (result, new int[] {1}, 4); /* BOOL */
- return COM.S_OK;
-}
-
-int contextMenuItemsForElement (long /*int*/ sender, long /*int*/ element, long /*int*/ defaultItemsHMenu, long /*int*/ resultHMenu) {
- Point pt = browser.getDisplay ().getCursorLocation ();
- Event event = new Event ();
- event.x = pt.x;
- event.y = pt.y;
- browser.notifyListeners (SWT.MenuDetect, event);
- if (event.doit) {
- Menu menu = browser.getMenu ();
- if (menu != null && !menu.isDisposed ()) {
- if (event.x != pt.x || event.y != pt.y) {
- menu.setLocation (event.x, event.y);
- }
- menu.setVisible (true);
- } else {
- OS.MoveMemory (resultHMenu, new long /*int*/[] {defaultItemsHMenu}, C.PTR_SIZEOF);
- return COM.S_OK;
- }
- }
- OS.MoveMemory (resultHMenu, new long /*int*/[] {0}, C.PTR_SIZEOF);
- return COM.S_OK;
-}
-
-void createCOMInterfaces () {
- iWebUIDelegate = new COMObject (new int[] {2, 0, 0, 3, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 4, 4, 2, 3, 4, 4, 3, 3, 3, 3, 5, 3, 1, 3, 2, 2, 2, 2, 3, 2, 3, 1, 1, 0, 0, 1, 1, 2, 2, 2, 2, 3, 5, 2, 2, 3, 1, 2, 2, 4, 10, 3}) {
- @Override
- public long /*int*/ method0 (long /*int*/[] args) {return QueryInterface (args[0], args[1]);}
- @Override
- public long /*int*/ method1 (long /*int*/[] args) {return AddRef ();}
- @Override
- public long /*int*/ method2 (long /*int*/[] args) {return Release ();}
- @Override
- public long /*int*/ method3 (long /*int*/[] args) {return createWebViewWithRequest (args[0], args[1], args[2]);}
- @Override
- public long /*int*/ method4 (long /*int*/[] args) {return webViewShow (args[0]);}
- @Override
- public long /*int*/ method5 (long /*int*/[] args) {return webViewClose (args[0]);}
- @Override
- public long /*int*/ method6 (long /*int*/[] args) {return COM.E_NOTIMPL;}
- @Override
- public long /*int*/ method7 (long /*int*/[] args) {return COM.E_NOTIMPL;}
- @Override
- public long /*int*/ method8 (long /*int*/[] args) {return COM.E_NOTIMPL;}
- @Override
- public long /*int*/ method9 (long /*int*/[] args) {return COM.E_NOTIMPL;}
- @Override
- public long /*int*/ method10 (long /*int*/[] args) {return setStatusText (args[0], args[1]);}
- @Override
- public long /*int*/ method11 (long /*int*/[] args) {return COM.E_NOTIMPL;}
- @Override
- public long /*int*/ method12 (long /*int*/[] args) {return COM.E_NOTIMPL;}
- @Override
- public long /*int*/ method13 (long /*int*/[] args) {return setToolbarsVisible (args[0], (int)/*64*/args[1]);}
- @Override
- public long /*int*/ method14 (long /*int*/[] args) {return COM.E_NOTIMPL;}
- @Override
- public long /*int*/ method15 (long /*int*/[] args) {return setStatusBarVisible (args[0], (int)/*64*/args[1]);}
- @Override
- public long /*int*/ method16 (long /*int*/[] args) {return COM.E_NOTIMPL;}
- @Override
- public long /*int*/ method17 (long /*int*/[] args) {return COM.E_NOTIMPL;}
- @Override
- public long /*int*/ method18 (long /*int*/[] args) {return setFrame (args[0], args[1]);}
- @Override
- public long /*int*/ method19 (long /*int*/[] args) {return COM.E_NOTIMPL;}
- @Override
- public long /*int*/ method20 (long /*int*/[] args) {return COM.E_NOTIMPL;}
- @Override
- public long /*int*/ method21 (long /*int*/[] args) {return COM.E_NOTIMPL;}
- @Override
- public long /*int*/ method22 (long /*int*/[] args) {return runJavaScriptAlertPanelWithMessage (args[0], args[1]);}
- @Override
- public long /*int*/ method23 (long /*int*/[] args) {return runJavaScriptConfirmPanelWithMessage (args[0], args[1], args[2]);}
- @Override
- public long /*int*/ method24 (long /*int*/[] args) {return runJavaScriptTextInputPanelWithPrompt (args[0], args[1], args[2], args[3]);}
- @Override
- public long /*int*/ method25 (long /*int*/[] args) {return runBeforeUnloadConfirmPanelWithMessage (args[0], args[1], args[2], args[3]);}
- @Override
- public long /*int*/ method26 (long /*int*/[] args) {return runOpenPanelForFileButtonWithResultListener (args[0], args[1]);}
- @Override
- public long /*int*/ method27 (long /*int*/[] args) {return mouseDidMoveOverElement (args[0], args[1], (int)/*64*/args[2]);}
- @Override
- public long /*int*/ method28 (long /*int*/[] args) {return contextMenuItemsForElement (args[0], args[1], args[2], args[3]);}
- @Override
- public long /*int*/ method29 (long /*int*/[] args) {return COM.E_NOTIMPL;}
- @Override
- public long /*int*/ method30 (long /*int*/[] args) {return COM.E_NOTIMPL;}
- @Override
- public long /*int*/ method31 (long /*int*/[] args) {return COM.E_NOTIMPL;}
- @Override
- public long /*int*/ method32 (long /*int*/[] args) {return COM.E_NOTIMPL;}
- @Override
- public long /*int*/ method33 (long /*int*/[] args) {return COM.E_NOTIMPL;}
- @Override
- public long /*int*/ method34 (long /*int*/[] args) {return COM.E_NOTIMPL;}
- @Override
- public long /*int*/ method35 (long /*int*/[] args) {return COM.E_NOTIMPL;}
- @Override
- public long /*int*/ method36 (long /*int*/[] args) {return COM.E_NOTIMPL;}
- @Override
- public long /*int*/ method37 (long /*int*/[] args) {return COM.E_NOTIMPL;}
- @Override
- public long /*int*/ method38 (long /*int*/[] args) {return COM.E_NOTIMPL;}
- @Override
- public long /*int*/ method39 (long /*int*/[] args) {return COM.E_NOTIMPL;}
- @Override
- public long /*int*/ method40 (long /*int*/[] args) {return COM.E_NOTIMPL;}
- @Override
- public long /*int*/ method41 (long /*int*/[] args) {return COM.E_NOTIMPL;}
- @Override
- public long /*int*/ method42 (long /*int*/[] args) {return canTakeFocus (args[0], (int)/*64*/args[1], args[2]);}
- @Override
- public long /*int*/ method43 (long /*int*/[] args) {return takeFocus (args[0], (int)/*64*/args[1]);}
- @Override
- public long /*int*/ method44 (long /*int*/[] args) {return COM.E_NOTIMPL;}
- @Override
- public long /*int*/ method45 (long /*int*/[] args) {return COM.S_OK;}
- @Override
- public long /*int*/ method46 (long /*int*/[] args) {return COM.E_NOTIMPL;}
- @Override
- public long /*int*/ method47 (long /*int*/[] args) {return COM.E_NOTIMPL;}
- @Override
- public long /*int*/ method48 (long /*int*/[] args) {return COM.E_NOTIMPL;}
- @Override
- public long /*int*/ method49 (long /*int*/[] args) {return COM.E_NOTIMPL;}
- @Override
- public long /*int*/ method50 (long /*int*/[] args) {return COM.E_NOTIMPL;}
- @Override
- public long /*int*/ method51 (long /*int*/[] args) {return printFrame (args[0], args[1]);}
- @Override
- public long /*int*/ method52 (long /*int*/[] args) {return COM.E_NOTIMPL;}
- @Override
- public long /*int*/ method53 (long /*int*/[] args) {return COM.E_NOTIMPL;}
- @Override
- public long /*int*/ method54 (long /*int*/[] args) {return COM.E_NOTIMPL;}
- @Override
- public long /*int*/ method55 (long /*int*/[] args) {return COM.E_NOTIMPL;}
- @Override
- public long /*int*/ method56 (long /*int*/[] args) {return COM.E_NOTIMPL;}
- @Override
- public long /*int*/ method57 (long /*int*/[] args) {return COM.E_NOTIMPL;}
- @Override
- public long /*int*/ method58 (long /*int*/[] args) {return COM.E_NOTIMPL;}
- @Override
- public long /*int*/ method59 (long /*int*/[] args) {return COM.E_NOTIMPL;}
- @Override
- public long /*int*/ method60 (long /*int*/[] args) {return COM.E_NOTIMPL;}
- @Override
- public long /*int*/ method61 (long /*int*/[] args) {return COM.E_NOTIMPL;}
- @Override
- public long /*int*/ method62 (long /*int*/[] args) {return setMenuBarVisible (args[0], (int)/*64*/args[1]);}
- @Override
- public long /*int*/ method63 (long /*int*/[] args) {return COM.E_NOTIMPL;}
- @Override
- public long /*int*/ method64 (long /*int*/[] args) {return COM.E_NOTIMPL;}
- @Override
- public long /*int*/ method65 (long /*int*/[] args) {return COM.E_NOTIMPL;}
- };
-}
-
-int createWebViewWithRequest (long /*int*/ sender, long /*int*/ request, long /*int*/ webView) {
- WindowEvent newEvent = new WindowEvent (browser);
- newEvent.display = browser.getDisplay ();
- newEvent.widget = browser;
- newEvent.required = true;
- OpenWindowListener[] openWindowListeners = browser.webBrowser.openWindowListeners;
- for (int i = 0; i < openWindowListeners.length; i++) {
- openWindowListeners[i].open (newEvent);
- }
- IWebView iwebview = null;
- Browser browser = null;
- if (newEvent.browser != null && newEvent.browser.webBrowser instanceof WebKit) {
- browser = newEvent.browser;
- }
- if (browser != null && !browser.isDisposed ()) {
- iwebview = ((WebKit)browser.webBrowser).webView;
- OS.MoveMemory (webView, new long /*int*/[] {iwebview.getAddress ()}, C.PTR_SIZEOF);
- if (request != 0) {
- IWebURLRequest req = new IWebURLRequest (request);
- long /*int*/[] result = new long /*int*/[1];
- int hr = req.URL (result);
- if (hr != COM.S_OK || result[0] == 0) {
- return COM.S_OK;
- }
- String sUrl = WebKit.extractBSTR (result[0]);
- COM.SysFreeString (result[0]);
- if (sUrl.length () != 0) {
- result[0] = 0;
- hr = iwebview.mainFrame (result);
- if (hr != COM.S_OK || result[0] == 0) {
- return COM.S_OK;
- }
- IWebFrame mainFrame = new IWebFrame (result[0]);
- mainFrame.loadRequest (req.getAddress ());
- mainFrame.Release ();
- }
- }
- return COM.S_OK;
- }
- return COM.E_NOTIMPL;
-}
-
-protected void disposeCOMInterfaces () {
- if (iWebUIDelegate != null) {
- iWebUIDelegate.dispose ();
- iWebUIDelegate = null;
- }
-}
-
-long /*int*/ getAddress () {
- return iWebUIDelegate.getAddress ();
-}
-
-int mouseDidMoveOverElement (long /*int*/ sender, long /*int*/ elementInformation, int modifierFlags) {
- if (elementInformation == 0) return COM.S_OK;
-
- IPropertyBag info = new IPropertyBag (elementInformation);
- long /*int*/ key = WebKit.createBSTR ("WebElementLinkURLKey"); //$NON-NLS-N$
- long /*int*/ hHeap = OS.GetProcessHeap ();
- long /*int*/ resultPtr = OS.HeapAlloc (hHeap, OS.HEAP_ZERO_MEMORY, VARIANT.sizeof);
- int hr = info.Read (key, resultPtr, null);
- if (hr != COM.S_OK || resultPtr == 0) {
- return COM.S_OK;
- }
- String value = null;
- VARIANT v = new VARIANT ();
- COM.MoveMemory (v, resultPtr, VARIANT.sizeof);
- if (v.vt == COM.VT_BSTR) value = WebKit.extractBSTR (v.lVal);
- OS.HeapFree (hHeap, 0, resultPtr);
- StatusTextListener[] statusTextListeners = browser.webBrowser.statusTextListeners;
- if (value == null || value.length () == 0) {
- /* not currently over a link */
- if (lastHoveredLinkURL == null) return COM.S_OK;
- lastHoveredLinkURL = null;
- StatusTextEvent statusText = new StatusTextEvent (browser);
- statusText.display = browser.getDisplay ();
- statusText.widget = browser;
- statusText.text = ""; //$NON-NLS-1$
- for (int i = 0; i < statusTextListeners.length; i++) {
- statusTextListeners[i].changed (statusText);
- }
- return COM.S_OK;
- }
- if (value.equals (lastHoveredLinkURL)) return COM.S_OK;
- lastHoveredLinkURL = value;
- StatusTextEvent statusText = new StatusTextEvent (browser);
- statusText.display = browser.getDisplay ();
- statusText.widget = browser;
- statusText.text = value;
- for (int i = 0; i < statusTextListeners.length; i++) {
- statusTextListeners[i].changed (statusText);
- }
- return COM.S_OK;
-}
-
-int printFrame (long /*int*/ webView, long /*int*/ frame) {
- IWebFrame iwebFrame = new IWebFrame (frame);
- PRINTDLG pd = new PRINTDLG ();
- pd.lStructSize = PRINTDLG.sizeof;
- pd.Flags = OS.PD_RETURNDC;
- Display display = browser.getDisplay ();
- display.sendPreExternalEventDispatchEvent ();
- boolean success = OS.PrintDlg (pd);
- display.sendPostExternalEventDispatchEvent ();
- if (!success) return COM.S_OK;
- long /*int*/ printDC = pd.hDC;
-
- long /*int*/[] result = new long /*int*/[1];
- int hr = iwebFrame.QueryInterface (WebKit_win32.IID_IWebFramePrivate, result);
- if (hr != COM.S_OK || result[0] == 0) {
- return COM.S_OK;
- }
- IWebFramePrivate privateFrame = new IWebFramePrivate (result[0]);
- privateFrame.setInPrintingMode (1, printDC);
- int[] count = new int[1];
- hr = privateFrame.getPrintedPageCount (printDC, count);
- if (hr != COM.S_OK || count[0] == 0) {
- privateFrame.Release ();
- return COM.S_OK;
- }
- int pageCount = count[0];
- String jobName = null;
- result[0] = 0;
- hr = iwebFrame.dataSource (result);
- if (hr == COM.S_OK && result[0] != 0) {
- IWebDataSource dataSource = new IWebDataSource (result[0]);
- result[0] = 0;
- hr = dataSource.pageTitle (result);
- dataSource.Release ();
- if (hr == COM.S_OK && result[0] != 0) {
- jobName = WebKit.extractBSTR (result[0]);
- COM.SysFreeString (result[0]);
- }
- }
- DOCINFO di = new DOCINFO ();
- di.cbSize = DOCINFO.sizeof;
- long /*int*/ hHeap = OS.GetProcessHeap ();
- long /*int*/ lpszDocName = 0;
- if (jobName != null && jobName.length () != 0) {
- /* Use the character encoding for the default locale */
- TCHAR buffer = new TCHAR (0, jobName, true);
- int byteCount = buffer.length () * TCHAR.sizeof;
- lpszDocName = OS.HeapAlloc (hHeap, OS.HEAP_ZERO_MEMORY, byteCount);
- OS.MoveMemory (lpszDocName, buffer, byteCount);
- di.lpszDocName = lpszDocName;
- }
- int rc = OS.StartDoc (printDC, di);
- if (lpszDocName != 0) OS.HeapFree (hHeap, 0, lpszDocName);
- if (rc >= 0) {
- for (int i = 0; i < pageCount; i++) {
- OS.StartPage (printDC);
- privateFrame.spoolPages (printDC, i, i, null);
- OS.EndPage (printDC);
- }
- privateFrame.setInPrintingMode (0, printDC);
- OS.EndDoc (printDC);
- }
- privateFrame.Release ();
- return COM.S_OK;
-}
-
-int QueryInterface (long /*int*/ riid, long /*int*/ ppvObject) {
- if (riid == 0 || ppvObject == 0) return COM.E_INVALIDARG;
- GUID guid = new GUID ();
- COM.MoveMemory (guid, riid, GUID.sizeof);
-
- if (COM.IsEqualGUID (guid, COM.IIDIUnknown)) {
- OS.MoveMemory (ppvObject, new long /*int*/[] {iWebUIDelegate.getAddress ()}, C.PTR_SIZEOF);
- new IUnknown (iWebUIDelegate.getAddress ()).AddRef ();
- return COM.S_OK;
- }
- if (COM.IsEqualGUID (guid, WebKit_win32.IID_IWebUIDelegate)) {
- OS.MoveMemory (ppvObject, new long /*int*/[] {iWebUIDelegate.getAddress ()}, C.PTR_SIZEOF);
- new IUnknown (iWebUIDelegate.getAddress ()).AddRef ();
- return COM.S_OK;
- }
-
- OS.MoveMemory (ppvObject, new long /*int*/[] {0}, C.PTR_SIZEOF);
- return COM.E_NOINTERFACE;
-}
-
-int Release () {
- refCount--;
- if (refCount == 0) {
- disposeCOMInterfaces ();
- }
- return refCount;
-}
-
-int runBeforeUnloadConfirmPanelWithMessage (long /*int*/ sender, long /*int*/ message, long /*int*/ initiatedByFrame, long /*int*/ result) {
- if (!prompt) return COM.S_OK;
-
- Shell parent = browser.getShell ();
- String string = WebKit.extractBSTR (message);
- StringBuffer text = new StringBuffer (Compatibility.getMessage ("SWT_OnBeforeUnload_Message1")); //$NON-NLS-1$
- text.append ("\n\n"); //$NON-NLS-1$
- text.append (string);
- text.append ("\n\n"); //$NON-NLS-1$
- text.append (Compatibility.getMessage ("SWT_OnBeforeUnload_Message2")); //$NON-NLS-1$
- MessageBox box = new MessageBox (parent, SWT.OK | SWT.CANCEL | SWT.ICON_QUESTION);
- box.setMessage (text.toString ());
- int[] response = new int[1];
- response[0] = box.open () == SWT.OK ? 1 : 0;
- OS.MoveMemory (result, response, 4); /* BOOL */
- return COM.S_OK;
-}
-
-int runJavaScriptAlertPanelWithMessage (long /*int*/ sender, long /*int*/ message) {
- String messageString = WebKit.extractBSTR (message);
- showAlertMessage ("Javascript", messageString); //$NON-NLS-1$
- return COM.S_OK;
-}
-
-int runJavaScriptConfirmPanelWithMessage (long /*int*/ sender, long /*int*/ message, long /*int*/ result) {
- String messageString = WebKit.extractBSTR (message);
- int[] response = new int[1];
- response[0] = showConfirmPanel ("Javascript", messageString) == SWT.OK ? 1 : 0; //$NON-NLS-1$
- OS.MoveMemory (result, response, 4); /* BOOL */
- return COM.S_OK;
-}
-
-int runJavaScriptTextInputPanelWithPrompt (long /*int*/ sender, long /*int*/ message, long /*int*/ defaultText, long /*int*/ result) {
- String messageString = WebKit.extractBSTR (message);
- String defaultTextString = WebKit.extractBSTR (defaultText);
- String resultString = showTextPrompter ("Javascript", messageString, defaultTextString); //$NON-NLS-1$
- long /*int*/[] response = new long /*int*/[1];
- if (resultString != null) {
- response[0] = WebKit.createBSTR (resultString);
- }
- OS.MoveMemory (result, response, C.PTR_SIZEOF);
- return COM.S_OK;
-}
-
-int runOpenPanelForFileButtonWithResultListener (long /*int*/ sender, long /*int*/ resultListener) {
- Shell parent = browser.getShell ();
- FileDialog dialog = new FileDialog (parent, SWT.NONE);
- String result = dialog.open ();
- IWebOpenPanelResultListener listener = new IWebOpenPanelResultListener (resultListener);
- if (result == null) {
- listener.cancel ();
- } else {
- listener.chooseFilename (WebKit.createBSTR (result));
- }
- return COM.S_OK;
-}
-
-int setFrame (long /*int*/ sender, long /*int*/ frame) {
- RECT rect = new RECT ();
- COM.MoveMemory (rect, frame, RECT.sizeof);
- /* convert to SWT system coordinates */
- location = DPIUtil.autoScaleUp(browser.getDisplay ().map (browser, null, DPIUtil.autoScaleDown(new Point(rect.left, rect.top)))); // To Pixels
- int x = rect.right - rect.left;
- int y = rect.bottom - rect.top;
- if (y < 0 || x < 0 || (x == 0 && y == 0)) return COM.S_OK;
- size = new Point (x, y);
- return COM.S_OK;
-}
-
-int setMenuBarVisible (long /*int*/ sender, int visible) {
- /* Note. Webkit only emits the notification when the status bar should be hidden. */
- menuBar = visible == 1;
- return COM.S_OK;
-}
-
-int setStatusBarVisible (long /*int*/ sender, int visible) {
- /* Note. Webkit only emits the notification when the status bar should be hidden. */
- statusBar = visible == 1;
- return COM.S_OK;
-}
-
-int setStatusText (long /*int*/ sender, long /*int*/ text) {
- String statusText = WebKit.extractBSTR (text);
- if (statusText.length () == 0) return COM.S_OK;
- StatusTextEvent statusTextEvent = new StatusTextEvent (browser);
- statusTextEvent.display = browser.getDisplay ();
- statusTextEvent.widget = browser;
- statusTextEvent.text = statusText;
- StatusTextListener[] statusTextListeners = browser.webBrowser.statusTextListeners;
- for (int i = 0; i < statusTextListeners.length; i++) {
- statusTextListeners[i].changed (statusTextEvent);
- }
- return COM.S_OK;
-}
-
-int setToolbarsVisible (long /*int*/ sender, int visible) {
- /* Note. Webkit only emits the notification when the status bar should be hidden. */
- toolBar = visible == 1;
- return COM.S_OK;
-}
-
-void showAlertMessage (String title, String message) {
- Shell parent = browser.getShell ();
- final Shell dialog = new Shell (parent, SWT.APPLICATION_MODAL | SWT.DIALOG_TRIM);
- GridLayout layout = new GridLayout (2, false);
- layout.horizontalSpacing = 10;
- layout.verticalSpacing = 20;
- layout.marginWidth = layout.marginHeight = 10;
- dialog.setLayout (layout);
- dialog.setText (title);
-
- Label label = new Label (dialog, SWT.NONE);
- Image image = dialog.getDisplay ().getSystemImage (SWT.ICON_WARNING);
- label.setImage (image);
-
- label = new Label (dialog, SWT.WRAP);
- label.setText (message);
- Monitor monitor = parent.getMonitor ();
- int maxWidth = monitor.getBounds().width * 2 / 3;
- int width = label.computeSize (SWT.DEFAULT, SWT.DEFAULT).x;
- GridData data = new GridData (SWT.FILL, SWT.CENTER, true, false);
- data.widthHint = Math.min (width, maxWidth);
- label.setLayoutData (data);
-
- Button ok = new Button (dialog, SWT.PUSH);
- ok.setText (SWT.getMessage ("SWT_OK")); //$NON-NLS-1$
- width = ok.computeSize (SWT.DEFAULT, SWT.DEFAULT).x;
- GridData layoutData = new GridData ();
- layoutData.horizontalAlignment = SWT.CENTER;
- layoutData.verticalAlignment = SWT.CENTER;
- layoutData.horizontalSpan = 2;
- layoutData.widthHint = Math.max (width, 75);
- ok.setLayoutData (layoutData);
-
- ok.addSelectionListener (new SelectionAdapter () {
- @Override
- public void widgetSelected (SelectionEvent e) {
- dialog.dispose ();
- }
- });
-
- dialog.setDefaultButton (ok);
- dialog.pack ();
- Rectangle parentSize = parent.getBounds ();
- Rectangle dialogSize = dialog.getBounds ();
- int x = parent.getLocation ().x + (parentSize.width - dialogSize.width) / 2;
- int y = parent.getLocation ().y + (parentSize.height - dialogSize.height) / 2;
- dialog.setLocation (x, y);
- dialog.open ();
- Display display = browser.getDisplay ();
- while (!dialog.isDisposed ()) {
- if (!display.readAndDispatch ()) display.sleep ();
- }
-}
-
-int showConfirmPanel (String title, String message) {
- Shell parent = browser.getShell ();
- final Shell dialog = new Shell (parent, SWT.APPLICATION_MODAL | SWT.DIALOG_TRIM);
- GridLayout layout = new GridLayout (2, false);
- layout.horizontalSpacing = 10;
- layout.verticalSpacing = 20;
- layout.marginWidth = layout.marginHeight = 10;
- dialog.setLayout (layout);
- dialog.setText (title);
-
- Label label = new Label (dialog, SWT.NONE);
- Image image = dialog.getDisplay ().getSystemImage (SWT.ICON_QUESTION);
- label.setImage (image);
- label.setLayoutData (new GridData ());
-
- label = new Label (dialog, SWT.WRAP);
- label.setText (message);
- Monitor monitor = parent.getMonitor ();
- int maxWidth = monitor.getBounds ().width * 2 / 3;
- int width = label.computeSize (SWT.DEFAULT, SWT.DEFAULT).x;
- GridData data = new GridData (SWT.FILL, SWT.CENTER, true, false);
- data.widthHint = Math.min (width, maxWidth);
- label.setLayoutData (data);
-
- Composite buttons = new Composite (dialog, SWT.NONE);
- data = new GridData (SWT.CENTER, SWT.CENTER, true, true, 2, 1);
- buttons.setLayoutData (data);
- buttons.setLayout (new GridLayout (2, true));
-
- Button ok = new Button (buttons, SWT.PUSH);
- ok.setText (SWT.getMessage ("SWT_OK")); //$NON-NLS-1$
- GridData layoutData = new GridData ();
- layoutData.horizontalAlignment = SWT.CENTER;
- layoutData.verticalAlignment = SWT.CENTER;
- ok.setLayoutData (layoutData);
-
- Button cancel = new Button (buttons, SWT.PUSH);
- cancel.setText (SWT.getMessage ("SWT_Cancel")); //$NON-NLS-1$
- cancel.setLayoutData (layoutData);
- width = cancel.computeSize (SWT.DEFAULT, SWT.DEFAULT).x;
- layoutData.widthHint = Math.max (width, 75);
-
- final int[] result = new int[1];
- ok.addSelectionListener (new SelectionAdapter () {
- @Override
- public void widgetSelected (SelectionEvent e) {
- result[0] = SWT.OK;
- dialog.dispose ();
- }
- });
- cancel.addSelectionListener (new SelectionAdapter () {
- @Override
- public void widgetSelected (SelectionEvent e) {
- result[0] = SWT.CANCEL;
- dialog.dispose ();
- }
- });
-
- dialog.setDefaultButton (ok);
- dialog.pack ();
- Rectangle parentSize = parent.getBounds ();
- Rectangle dialogSize = dialog.getBounds ();
- int x = parent.getLocation ().x + (parentSize.width - dialogSize.width) / 2;
- int y = parent.getLocation ().y + (parentSize.height - dialogSize.height) / 2;
- dialog.setLocation (x, y);
- dialog.open ();
- Display display = browser.getDisplay ();
- while (!dialog.isDisposed ()) {
- if (!display.readAndDispatch ()) display.sleep ();
- }
- return result[0];
-}
-
-String showTextPrompter (String title, String message, String defaultText) {
- Shell parent = browser.getShell ();
- final Shell dialog = new Shell (parent, SWT.APPLICATION_MODAL | SWT.DIALOG_TRIM);
- dialog.setLayout (new GridLayout ());
- dialog.setText (title);
-
- Label label = new Label (dialog, SWT.NONE);
- label.setLayoutData (new GridData (GridData.FILL_HORIZONTAL));
- label.setText (message);
-
- final Text textBox = new Text (dialog, SWT.SINGLE | SWT.BORDER);
- GridData data = new GridData (GridData.FILL_HORIZONTAL);
- data.widthHint = 300;
- textBox.setLayoutData (data);
- textBox.setText (defaultText);
-
- Composite buttons = new Composite (dialog, SWT.NONE);
- buttons.setLayout (new GridLayout (2, true));
- buttons.setLayoutData (new GridData (GridData.HORIZONTAL_ALIGN_CENTER));
- Button ok = new Button (buttons, SWT.PUSH);
- ok.setText (SWT.getMessage ("SWT_OK")); //$NON-NLS-1$
- ok.setLayoutData (new GridData (GridData.FILL_HORIZONTAL));
-
- final String[] result = new String[1];
- ok.addSelectionListener (new SelectionAdapter () {
- @Override
- public void widgetSelected (SelectionEvent e) {
- result[0] = textBox.getText ();
- dialog.dispose ();
- }
- });
- Button cancel = new Button (buttons, SWT.PUSH);
- cancel.setText (SWT.getMessage ("SWT_Cancel")); //$NON-NLS-1$
- cancel.setLayoutData (new GridData (GridData.FILL_HORIZONTAL));
- cancel.addSelectionListener (new SelectionAdapter () {
- @Override
- public void widgetSelected (SelectionEvent e) {
- dialog.dispose ();
- }
- });
-
- dialog.setDefaultButton (ok);
- dialog.pack ();
- Rectangle parentSize = parent.getBounds ();
- Rectangle dialogSize = dialog.getBounds ();
- int x = parent.getLocation ().x + (parentSize.width - dialogSize.width) / 2;
- int y = parent.getLocation ().y + (parentSize.height - dialogSize.height) / 2;
- dialog.setLocation (x, y);
- dialog.open ();
- Display display = browser.getDisplay ();
- while (!dialog.isDisposed ()) {
- if (!display.readAndDispatch ()) display.sleep ();
- }
- return result[0];
-}
-
-int takeFocus (long /*int*/ sender, int forward) {
- int traveralCode = forward == 0 ? SWT.TRAVERSE_TAB_PREVIOUS : SWT.TRAVERSE_TAB_NEXT;
- ((WebKit)browser.webBrowser).traverseOut = true;
- browser.traverse (traveralCode);
- return COM.S_OK;
-}
-
-int webViewClose (long /*int*/ sender) {
- WindowEvent newEvent = new WindowEvent (browser);
- newEvent.display = browser.getDisplay ();
- newEvent.widget = browser;
- CloseWindowListener[] closeWindowListeners = browser.webBrowser.closeWindowListeners;
- for (int i = 0; i < closeWindowListeners.length; i++) {
- closeWindowListeners[i].close (newEvent);
- }
- browser.dispose ();
- return COM.S_OK;
-}
-
-int webViewFrame (long /*int*/ sender, long /*int*/ frame) {
- RECT rect = new RECT ();
- OS.MoveMemory (frame, rect, RECT.sizeof);
- return COM.S_OK;
-}
-
-int webViewShow (long /*int*/ sender) {
- WindowEvent newEvent = new WindowEvent (browser);
- newEvent.display = browser.getDisplay ();
- newEvent.widget = browser;
- if (location != null) newEvent.location = location;
- if (size != null) newEvent.size = size;
- /*
- * Feature in WebKit. WebKit's tool bar contains
- * the address bar. The address bar is displayed
- * if the tool bar is displayed. There is no separate
- * notification for the address bar.
- */
- newEvent.addressBar = toolBar;
- newEvent.menuBar = menuBar;
- newEvent.statusBar = statusBar;
- newEvent.toolBar = toolBar;
- VisibilityWindowListener[] visibilityWindowListeners = browser.webBrowser.visibilityWindowListeners;
- for (int i = 0; i < visibilityWindowListeners.length; i++) {
- visibilityWindowListeners[i].show (newEvent);
- }
- location = null;
- size = null;
- return COM.S_OK;
-}
-
-}

Back to the top