/* -*- mode: java; c-basic-offset: 2; indent-tabs-mode: nil -*- */ /* SizeInfo - parsed elements of a size() or fullScreen() call Part of the Processing project - http://processing.org Copyright (c) 2015 The Processing Foundation This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ package processing.mode.java.preproc; import processing.app.Messages; import processing.core.PApplet; import processing.data.StringList; public class SurfaceInfo { StringList statements = new StringList(); String width; String height; String renderer; String path; String display; /** null for nothing in setup(), 0 for noSmooth(), N for smooth(N) */ //Integer quality; // String smooth; boolean hasOldSyntax() { if (width.equals("screenWidth") || width.equals("screenHeight") || height.equals("screenHeight") || height.equals("screenWidth")) { final String message = "The screenWidth and screenHeight variables are named\n" + "displayWidth and displayHeight in Processing 3.\n" + "Or you can use the fullScreen() method instead of size()."; Messages.showWarning("Time for a quick update", message, null); return true; } if (width.equals("screen.width") || width.equals("screen.height") || height.equals("screen.height") || height.equals("screen.width")) { final String message = "The screen.width and screen.height variables are named\n" + "displayWidth and displayHeight in Processing 3.\n" + "Or you can use the fullScreen() method instead of size()."; Messages.showWarning("Time for a quick update", message, null); return true; } return false; } boolean hasBadSize() { if (!width.equals("displayWidth") && !width.equals("displayHeight") && PApplet.parseInt(width, -1) == -1) { return true; } if (!height.equals("displayWidth") && !height.equals("displayHeight") && PApplet.parseInt(height, -1) == -1) { return true; } return false; } void checkEmpty() { if (renderer != null) { if (renderer.length() == 0) { // if empty, set null renderer = null; } } if (path != null) { if (path.length() == 0) { path = null; } } if (display != null) { if (display.length() == 0) { display = null; } } } // public String getStatements() { // return statements.join(" "); // } public StringList getStatements() { return statements; } /** * Add an item that will be moved from size() into the settings() method. * This needs to be the exact version of the statement so that it can be * matched against and removed from the size() method in the code. */ public void addStatement(String stmt) { statements.append(stmt); } public void addStatements(StringList list) { statements.append(list); } /** @return true if there's code to be inserted for a settings() method. */ public boolean hasSettings() { return statements.size() != 0; } /** @return the contents of the settings() method to be inserted */ public String getSettings() { return statements.join(" "); } // Added for Android Mode to check whether OpenGL is in use // https://github.com/processing/processing/issues/4441 /** * Return the renderer specified (null if none specified). * @since 3.2.2 */ public String getRenderer() { return renderer; } }