Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
17 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,4 +17,4 @@ As with all releases, we'll do everything possible to avoid breaking API. Howeve

### alpha 1

* `Base.defaultFileMenu` is now `protected` instead of `static public`
* `Base.defaultFileMenu` is now `protected` instead of `static public`
13 changes: 12 additions & 1 deletion app/src/processing/app/Language.java
Original file line number Diff line number Diff line change
Expand Up @@ -170,6 +170,18 @@ static public Language init() {
}


static public void addModeStrings(Mode mode) {
String baseFilename = "languages/mode.properties";
String langFilename = "languages/mode_" + instance.language + ".properties";
File modeBaseFile = new File(mode.getFolder(), baseFilename);
File modeLangFile = new File(mode.getFolder(), langFilename);
if (modeBaseFile.exists() && modeLangFile.exists()) {
instance.bundle.read(modeBaseFile);
instance.bundle.read(modeLangFile);
}
}


static private String get(String key) {
LanguageBundle bundle = init().bundle;

Expand All @@ -183,7 +195,6 @@ static private String get(String key) {
return null;
}


/** Get translation from bundles. */
static public String text(String key) {
String value = get(key);
Expand Down
2 changes: 2 additions & 0 deletions app/src/processing/app/contrib/ModeContribution.java
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@
import java.util.List;

import processing.app.Base;
import processing.app.Language;
import processing.app.Messages;
import processing.app.Mode;
import processing.app.Util;
Expand Down Expand Up @@ -89,6 +90,7 @@ public ModeContribution(Base base, File folder,
Messages.log("Got mode class " + modeClass);
Constructor con = modeClass.getConstructor(Base.class, File.class);
mode = (Mode) con.newInstance(base, folder);
Language.addModeStrings(mode);
mode.setClassLoader(loader);
if (base != null) {
mode.setupGUI();
Expand Down
5 changes: 3 additions & 2 deletions app/src/processing/app/tools/Archiver.java
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@

import processing.app.*;
import processing.app.ui.Editor;
import processing.awt.ShimAWT;
import processing.core.PApplet;

import java.io.*;
Expand Down Expand Up @@ -97,8 +98,8 @@ public void run() {
} while (newbie.exists());

// open up a prompt for where to save this fella
PApplet.selectOutput(Language.text("archive_sketch"),
"fileSelected", newbie, this, editor);
ShimAWT.selectOutput(Language.text("archive_sketch"),
"fileSelected", newbie, this);
}


Expand Down
5 changes: 3 additions & 2 deletions app/src/processing/app/ui/PreferencesFrame.java
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@
import processing.app.Platform;
import processing.app.Preferences;
import processing.app.ui.ColorChooser;
import processing.awt.ShimAWT;
import processing.core.*;


Expand Down Expand Up @@ -115,9 +116,9 @@ public PreferencesFrame(Base base) {
browseButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
File dflt = new File(sketchbookLocationField.getText());
PApplet.selectFolder(Language.text("preferences.sketchbook_location.popup"),
ShimAWT.selectFolder(Language.text("preferences.sketchbook_location.popup"),
"sketchbookCallback", dflt,
PreferencesFrame.this, frame);
PreferencesFrame.this);
}
});

Expand Down
5 changes: 3 additions & 2 deletions app/src/processing/app/ui/Welcome.java
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@
import processing.app.Language;
import processing.app.Platform;
import processing.app.Preferences;
import processing.awt.ShimAWT;
import processing.core.PApplet;


Expand Down Expand Up @@ -113,9 +114,9 @@ public void handleLink(String link) {
// The link will already have the full URL prefix
if (link.endsWith("#sketchbook")) {
File folder = new File(Preferences.getSketchbookPath()).getParentFile();
PApplet.selectFolder(Language.text("preferences.sketchbook_location.popup"),
ShimAWT.selectFolder(Language.text("preferences.sketchbook_location.popup"),
"sketchbookCallback", folder,
this, this);
this);
} else {
super.handleLink(link);
}
Expand Down
4 changes: 3 additions & 1 deletion java/libraries/pdf/src/processing/pdf/PGraphicsPDF.java
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@
import com.lowagie.text.pdf.ByteBuffer;

import processing.awt.PGraphicsJava2D;
import processing.awt.PImageAWT;
import processing.core.*;


Expand Down Expand Up @@ -427,8 +428,9 @@ protected void imageImpl(PImage image,
int imageHeight = image.height;
scale((x2 - x1) / imageWidth,
(y2 - y1) / imageHeight);
PImageAWT pImageAWT = (PImageAWT) image;
if (u2-u1 == imageWidth && v2-v1 == imageHeight) {
g2.drawImage(image.getImage(), 0, 0, null);
g2.drawImage((Image) pImageAWT.getNative(), 0, 0, null);
} else {
PImage tmp = image.get(u1, v1, u2-u1, v2-v1);
g2.drawImage((Image) tmp.getNative(), 0, 0, null);
Expand Down
12 changes: 11 additions & 1 deletion java/src/processing/mode/java/preproc/PdeParseTreeListener.java
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,8 @@ public class PdeParseTreeListener extends ProcessingBaseListener {

private String sketchWidth;
private String sketchHeight;
private String sketchRenderer;
private String sketchRenderer = null;
private String sketchOutputFilename = null;

private boolean sizeRequiresRewrite = false;
private boolean sizeIsFullscreen = false;
Expand Down Expand Up @@ -620,10 +621,15 @@ protected void handleSizeCall(ParserRuleContext ctx) {
sketchRenderer.equals("P3D") ||
sketchRenderer.equals("OPENGL") ||
sketchRenderer.equals("JAVA2D") ||
sketchRenderer.equals("PDF") ||
sketchRenderer.equals("FX2D"))) {
thisRequiresRewrite = false;
}
}

if (argsContext.getChildCount() > 5) {
sketchOutputFilename = argsContext.getChild(6).getText();
}
}

if (isFullscreen) {
Expand Down Expand Up @@ -1003,6 +1009,10 @@ protected void writeExtraFieldsAndMethods(PrintWriterWithEditGen classBodyWriter
argJoiner.add(sketchRenderer);
}

if (sketchOutputFilename != null) {
argJoiner.add(sketchOutputFilename);
}

settingsInner = String.format("size(%s);", argJoiner.toString());
}

Expand Down
5 changes: 5 additions & 0 deletions java/test/processing/mode/java/ParserTests.java
Original file line number Diff line number Diff line change
Expand Up @@ -378,6 +378,11 @@ public void testPackage() {
expectGood("packageTest", true, Optional.of("test.subtest"));
}

@Test
public void testPdfWrite() {
expectGood("pdfwrite");
}

private static boolean compile(String id, String program) {
// Create compilable AST to get syntax problems
CompilationUnit compilableCU = JdtCompilerUtil.makeAST(
Expand Down
45 changes: 45 additions & 0 deletions java/test/resources/pdfwrite.expected
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
import processing.core.*;
import processing.data.*;
import processing.event.*;
import processing.opengl.*;

import processing.pdf.*;

import java.util.HashMap;
import java.util.ArrayList;
import java.io.File;
import java.io.BufferedReader;
import java.io.PrintWriter;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.IOException;

public class pdfwrite extends PApplet {



public void setup() {
/* size commented out by preprocessor */;
}

public void draw() {
// Draw something good here
line(0, 0, width/2, height);

// Exit the program
println("Finished.");
exit();
}


public void settings() { size(400,400,PDF,"filename.pdf"); }

static public void main(String[] passedArgs) {
String[] appletArgs = new String[] { "pdfwrite" };
if (passedArgs != null) {
PApplet.main(concat(appletArgs, passedArgs));
} else {
PApplet.main(appletArgs);
}
}
}
14 changes: 14 additions & 0 deletions java/test/resources/pdfwrite.pde
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
import processing.pdf.*;

void setup() {
size(400, 400, PDF, "filename.pdf");
}

void draw() {
// Draw something good here
line(0, 0, width/2, height);

// Exit the program
println("Finished.");
exit();
}