protected boolean _needsAutoClick() { return false; }
+ protected void _newBrowserWindow(String url) {
+ if (Log.on) Log.log(this, "Platform " + platform.getClass().getName() + " cannot open browser windows");
+ return;
+ }
+
// Static methods -- thunk to the instance /////////////////////////////////////////////////////////////////////////
/** if true, org.xwt.Surface should generate Click messages automatically when a Release happens after a Press and the mouse has not moved much */
/** returns the maximum ascent of all glyphs in a given platform-specific font */
public static int getMaxAscent(String font) { return platform._getMaxAscent(font); }
- /** returns the maximum descent of all glyphs in a given platform-specific font */
- public static int getMaxDescent(String font) { return platform._getMaxDescent(font); }
+ /** returns the maximum descent of all glyphs in a given platform-specific font. Three pixel minimum ensures space for underline. */
+ public static int getMaxDescent(String font) { return Math.max(3, platform._getMaxDescent(font)); }
/** returns the maximum number of threads that the XWT engine can create without adversely affecting the host OS */
public static int maxThreads() { return platform._maxThreads(); }
/** creates and returns a picture */
public static Picture createPicture(ImageDecoder i) { return platform._createPicture(i.getData(), i.getWidth(), i.getHeight()); }
+ /** creates and returns a picture */
+ public static void newBrowserWindow(String url) {
+ if (!(url.startsWith("https://") || url.startsWith("http://") || url.startsWith("ftp://") || url.startsWith("mailto:"))) {
+ if (Log.on) Log.log(Platform.class, "xwt.newBrowserWindow() only supports http and https urls");
+ return;
+ }
+ if (Log.on) Log.log(Platform.class, "newBrowserWindow, url = " + url);
+ platform._newBrowserWindow(url);
+ }
+
/** quits XWT */
public static void exit() {
Log.log(Platform.class, "exiting via Platform.exit()");
i = j;
while(i < font.length()) {
switch (font.charAt(i)) {
- case 'b': bold = true;
- case 'i': italic = true;
- case 'd': dotted_underline = true;
- case 'u': underline = true;
+ case 'b': bold = true; break;
+ case 'i': italic = true; break;
+ case 'd': dotted_underline = true; break;
+ case 'u': underline = true; break;
}
i++;
}