blob: 8900e976cdb6b70127626f2140c444a95ee7895b [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2005, 2008 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.swt.browser;
import org.eclipse.swt.browser.Browser;
import org.eclipse.swt.internal.win32.OS;
import org.eclipse.swt.widgets.*;
class MozillaDelegate {
Browser browser;
MozillaDelegate (Browser browser) {
super ();
this.browser = browser;
}
static Browser findBrowser (int /*long*/ handle) {
Display display = Display.getCurrent ();
return (Browser)display.findWidget (handle);
}
static char[] mbcsToWcs (String codePage, byte[] buffer) {
char[] chars = new char[buffer.length];
int charCount = OS.MultiByteToWideChar (OS.CP_ACP, OS.MB_PRECOMPOSED, buffer, buffer.length, chars, chars.length);
if (charCount == chars.length) return chars;
char[] result = new char[charCount];
System.arraycopy (chars, 0, result, 0, charCount);
return result;
}
static byte[] wcsToMbcs (String codePage, String string, boolean terminate) {
int byteCount;
char[] chars = new char[string.length()];
string.getChars (0, chars.length, chars, 0);
byte[] bytes = new byte[byteCount = chars.length * 2 + (terminate ? 1 : 0)];
byteCount = OS.WideCharToMultiByte (OS.CP_ACP, 0, chars, chars.length, bytes, byteCount, null, null);
if (terminate) {
byteCount++;
} else {
if (bytes.length != byteCount) {
byte[] result = new byte[byteCount];
System.arraycopy (bytes, 0, result, 0, byteCount);
bytes = result;
}
}
return bytes;
}
int /*long*/ getHandle () {
return browser.handle;
}
String getLibraryName () {
return "xpcom.dll"; //$NON-NLS-1$
}
String getSWTInitLibraryName () {
return "swt-xpcominit"; //$NON-NLS-1$
}
void handleFocus () {
}
boolean hookEnterExit () {
return true;
}
void init () {
}
boolean needsSpinup () {
return false;
}
void onDispose (int /*long*/ embedHandle) {
browser = null;
}
void setSize (int /*long*/ embedHandle, int width, int height) {
}
}