diff --git a/app/Preferences.java b/app/Preferences.java index ddbdff6fc..eb3340ac9 100644 --- a/app/Preferences.java +++ b/app/Preferences.java @@ -340,41 +340,29 @@ public class Preferences extends JComponent { d = label.getPreferredSize(); label.setForeground(Color.gray); label.setBounds(left, top, d.width, d.height); + right = Math.max(right, left + d.width); top += d.height; // + GUI_SMALL; label = new JLabel(preferencesFile.getAbsolutePath()); - /* - label.addMouseListener(new MouseAdapter() { - public void mousePressed(MouseEvent e) { - // close the frame and ignore any changes. - // otherwise, any changes made to preferences.txt - // will be lost when the prefs window is closed, - // since things will be re-applied. - disposeFrame(); - - // now safe to open the text file - Base.openURL(preferencesFile.getAbsolutePath()); - } - }); - */ - //label.setForeground(new Color(51, 25, 153)); pain.add(label); d = label.getPreferredSize(); label.setBounds(left, top, d.width, d.height); + right = Math.max(right, left + d.width); + top += d.height; label = new JLabel("(edit only when Processing is not running)"); - pain.add(label); d = label.getPreferredSize(); label.setForeground(Color.gray); label.setBounds(left, top, d.width, d.height); + right = Math.max(right, left + d.width); top += d.height; // + GUI_SMALL; // [ OK ] [ Cancel ] maybe these should be next to the message? - right = Math.max(right, left + d.width + GUI_BETWEEN + - BUTTON_WIDTH + GUI_SMALL + BUTTON_WIDTH); + //right = Math.max(right, left + d.width + GUI_BETWEEN + + // BUTTON_WIDTH + GUI_SMALL + BUTTON_WIDTH); button = new JButton(PROMPT_OK); button.addActionListener(new ActionListener() { @@ -388,7 +376,7 @@ public class Preferences extends JComponent { BUTTON_HEIGHT = d2.height; // smoosh up to the line before - top -= BUTTON_HEIGHT; + //top -= BUTTON_HEIGHT; h = right - (BUTTON_WIDTH + GUI_SMALL + BUTTON_WIDTH); button.setBounds(h, top, BUTTON_WIDTH, BUTTON_HEIGHT); @@ -409,7 +397,7 @@ public class Preferences extends JComponent { // finish up wide = right + GUI_BIG; - high = top + GUI_BIG; + high = top + GUI_SMALL; //GUI_BIG; setSize(wide, high); diff --git a/app/UpdateCheck.java b/app/UpdateCheck.java index 79a2f9204..a0a34806c 100644 --- a/app/UpdateCheck.java +++ b/app/UpdateCheck.java @@ -42,13 +42,17 @@ import processing.core.*; /** - * Threaded class to check for updates. + * Threaded class to check for updates in the background. *
- * This generates a random id number for this user, - * and hits the server to check for updates. - * The id number is used so that we can keep track of - * how many people are using Processing, which helps us - * when writing grant proposals and that kind of thing. + * This is the class that handles the mind control and stuff for + * spying on our users and stealing their personal information. + * A random ID number is generated for each user, and hits the server + * to check for updates. Also included is the operating system and + * its version and the version of Java being used to run Processing. + *
+ * The ID number also helps provide us a general idea of how many + * people are using Processing, which helps us when writing grant + * proposals and that kind of thing so that we can keep Processing free. */ public class UpdateCheck implements Runnable { Editor editor; @@ -76,10 +80,17 @@ public class UpdateCheck implements Runnable { Preferences.set("update.id", String.valueOf(id)); } + String info = + URLEncoder.encode(id + "\t" + + PApplet.nf(Base.VERSION, 4) + "\t" + + System.getProperty("java.version") + "\t" + + System.getProperty("java.vendor") + "\t" + + System.getProperty("os.name") + "\t" + + System.getProperty("os.version") + "\t" + + System.getProperty("os.arch")); + try { - //int id = PApplet.parseInt(idString); - //int latest = PApplet.toInt(PApplet.loadStrings()); - int latest = readInt(downloadURL + "?" + id); + int latest = readInt(downloadURL + "?" + info); String prompt = "A new version of Processing is available,\n" + diff --git a/core/PApplet.java b/core/PApplet.java index f49a4686e..9e71d91a0 100644 --- a/core/PApplet.java +++ b/core/PApplet.java @@ -5310,6 +5310,15 @@ v PApplet.this.stop(); } }); frame.add(label); + + /* + frame.addKeyListener(new KeyAdapter() { + public void keyPressed(KeyEvent e) { + System.out.println(e); + } + }); + */ + Dimension labelSize = label.getPreferredSize(); // sometimes shows up truncated on mac labelSize = new Dimension(labelSize.width * 2, labelSize.height); @@ -5914,9 +5923,9 @@ v PApplet.this.stop(); } - public void textMode(int space) { - if (recorder != null) recorder.textMode(space); - g.textMode(space); + public void textMode(int mode) { + if (recorder != null) recorder.textMode(mode); + g.textMode(mode); } diff --git a/core/todo.txt b/core/todo.txt index a638bba48..77acbd1a5 100644 --- a/core/todo.txt +++ b/core/todo.txt @@ -9,6 +9,9 @@ X saveFrame with a filename still causing trouble: X http://processing.org/discourse/yabb_beta/YaBB.cgi?board=SoftwareBugs;action=display;num=1114097641;start=0 X fov should be in radians +_ ex on endshape if no calls to vertex +_ http://processing.org/discourse/yabb_beta/YaBB.cgi?board=SoftwareBugs;action=display;num=1113940972 + _ createGraphics(200, 200) to create same as source _ createGraphics(200, 200, P2D) to create 2D from 3D _ also, drawing a PGraphics2 doesn't seem to work @@ -17,9 +20,8 @@ _ new PGraphics2 objects are set as RGB, but on loadPixels/updatePixels _ they're drawn as transparent and don't have their high bits set http://processing.org/discourse/yabb_beta/YaBB.cgi?board=Syntax;action=display;num=1113933055;start=0 -_ is mousePressed broken because of event queue? or at least w/ framerate? - _ polygons perpendicular to axis not drawing +_ is this a clipping error? _ http://processing.org/discourse/yabb_beta/YaBB.cgi?board=SoftwareBugs;action=display;num=1114158993;start=0 _ is camera backwards, or staying fixed and moving the scene? @@ -31,13 +33,39 @@ _ or endCamera might be swapping camera and cameraInv high priority but not *required* for 86 +_ is mousePressed broken because of event queue? +_ or at least w/ framerate? or redraw and noLoop? + X typed version of expand() and contract() _ need to complete for the others: _ append(), shorten(), splice, slice, subset, concat, reverse _ http://processing.org/discourse/yabb_beta/YaBB.cgi?board=Suggestions;action=display;num=1114443601;start=0 +present mode fixes _ for present mode, need to set a default display _ currently crashes if only --present is specified w/o --display +_ present mode is flakey.. applet doesn't always come up +_ seems like hitting stop helps shut it down? +_ is full screen window not being taken down properly? +_ esc should kill fullscreen mode +_ can a key handler be added to the window? +_ how can this be shut off for presentations? +_ http://processing.org/discourse/yabb_beta/YaBB.cgi?board=SoftwareBugs;action=display;num=1114027594;start=0 +_ implement full screen mode.. this takes over the screen as best it can +_ size(screen.width, screen.height, OPENGL); +_ if size is screen.width and screen.height, does its best +_ needs to get the size of the main screen +_ ability to select monitor via preferences panel +_ this applies to any applet that's run externally currently (verify) +_ make it also work with anything that's run inside of p5 itself +_ check current present code with multiple monitors +_ first pass on full screen +_ exceptions in full screen mode will quit the app completely +_ (can't keep window open because things are hosed) +_ default is that full screen app doesn't cover multiple displays +_ this is fine since opengl can't usually go across both +_ but include an example for how to use full in gl +_ (use toolkit.getscreensize) _ seem to be problems with updatePixels() on the mac _ appears to run asynchronously @@ -129,11 +157,6 @@ _ leave smooth off, get the gl object, then enable line smooth _ gl points not working again -_ implement full screen mode.. this takes over the screen as best it can -_ size(screen.width, screen.height, OPENGL); -_ if size is screen.width and screen.height, does its best -_ needs to get the size of the main screen - _ make illustrator lib _ move really general things out of PConstants (X, Y, Z..) @@ -264,7 +287,6 @@ _ if so, just switch the image code to expect alpha in the high bits _ fonts probably need to be RGBA, not ALPHA style images _ there's nothing really ALPHA about them? - // _ should image i/o and sound i/o be moved into PImage and PSound? @@ -276,7 +298,6 @@ _ make the file i/o stuff work more cleanly _ if people want to use their own file i/o they can do that too _ how to make a long setup() sleep so that things don't lock way up _ this could also be contributing to the hanging bug -_ make properly exit after things are finished _ static applets need to be able to resize themselves on 'play' _ figure out what to do with static apps exported as application _ needs to just hang there @@ -287,9 +308,12 @@ _ to take care of exception handling _ or maybe scripts are just handled with a different method? (yech) _ or maybe setup() can actually throw and Exception? _ but that's inserted by the parser, and hidden from the user? -_ implement size(0, 0) -> just doesn't bother doing a frame.show(); -_ too abstract, just have draw() call exit by default -_ so if nothing inside draw, just quits +o implement size(0, 0) -> just doesn't bother doing a frame.show(); +o too abstract, just have draw() call exit by default +o so if nothing inside draw, just quits +o make properly exit after things are finished +_ add exit() function to actually explicitly quit +_ scripts will just require that people include exit at the end _ need to make sure that components can be resized properly via size() _ or that it properly responds to a setBounds() call @@ -494,7 +518,7 @@ CORE / PGraphics CORE / PFont - 1 _ optimize textMode(OBJECT) with textMode(SCREEN) + 1 _ optimize textMode(MODEL) with textMode(SCREEN) 1 _ in PGraphics and PGraphics3, check to see if matrix is within epsilon 1 _ of one of the rotation matrices (many fewer steps) 1 _ if identity, or just translate, or a rotate, make OBJECT into SCREEN @@ -504,9 +528,11 @@ CORE / PFont 1 _ this way, can isolate it for gl too, which will use glBitmap 1 _ danger of this setup is that it may run much nicer for the author 1 _ i.e. with the font installed, and then super slow for their users - ? _ not having kerning really blows - ? _ could this be pulled from the OpenType font stuff? - ? _ it could be placed at the end of the file + _ not having kerning really blows + _ could this be pulled from the OpenType font stuff? + _ it could be placed at the end of the file + _ not having fractional widths on small fonts really blows + _ screen space text looks crappy CORE / PSound diff --git a/todo.txt b/todo.txt index 9ba2dfe31..bf996ebba 100644 --- a/todo.txt +++ b/todo.txt @@ -5,17 +5,27 @@ X no difference between versions... should it be cvs based? X linux is missing all libraries except for javascript _ added again, but check the distribution to make sure they're working X http://processing.org/discourse/yabb_beta/YaBB.cgi?board=Tools;action=display;num=1114325419;start=1 +X preferences - second line of prefs (the file path) is smashing things +X righthand max isn't being updated for that second line +X or it's getting written over by the line below it +X http://processing.org/discourse/yabb_beta/YaBB.cgi?board=SoftwareBugs;action=display;num=1113932608 +X include platform information when checking for updates +X send over the int as long hex number? +X 64 bits hex is gonna be 16 digits.. much cleaner +o when people are running 1.5, warn them? +o if p5 is running 1.5, let them know to use the standard install +o check to see if when running externally, will be using a 1.5 vm +X nah, this seems like overkill.. problems haven't been *that* bad (yet) +X make sure that when running ext, using the local java + +_ get these two todo lists into their bugzilla categories _ make simple tool for casey to rebuild all the examples at once _ need to rebuild with this release because of 1.3/1.4 issues -_ include platform information when checking for updates -_ send over the int as long hex number? -_ 64 bits hex is gonna be 16 digits.. much cleaner -_ get platform checker into the latest exhibition piece - _ macosx 10.2 needs libiconv to run jikes _ http://processing.org/discourse/yabb_beta/YaBB.cgi?board=SoftwareBugs;action=display;num=1114113204;start=0 +_ http://processing.org/discourse/yabb_beta/YaBB.cgi?board=SoftwareBugs;action=display;num=1114381302;start=0 _ either compile jikes not to use it: _ http://jikes.sourceforge.net/faq/dev-win32.shtml _ or maybe include an installer: @@ -24,13 +34,6 @@ _ gnu page for libiconv _ http://www.gnu.org/software/libiconv/ _ on 10.2, the version of jikes from 69 (the cvs build) works fine -_ esc doesn't kill fullscreen mode -_ http://processing.org/discourse/yabb_beta/YaBB.cgi?board=SoftwareBugs;action=display;num=1114027594;start=0 - -_ preferences - second line of prefs (the file path) is smashing things -_ righthand max isn't being updated for that second line -_ or it's getting written over by the line below it - _ "are you trying to f-- with me" on quitting the app is super problem _ "save as" not quite working @@ -52,10 +55,15 @@ I get it. But i wonder if this will catch others off guard. Not suggesting a change to the way it works... but thoughts on if this might screw people in the long run? + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + DOCUMENTATION +_ quicktime 7 has not been tested, use at your own risk +_ if you have trouble on mac, this is a qt 652 reinstaller +_ http://www.apple.com/support/downloads/quicktime652reinstallerformac.html _ documentation on tabs: .java files, inner classes, etc _ serial will only list ports that are currently not in use _ i.e. if you're monitoring the port in one app, it won't be listed @@ -107,6 +115,7 @@ _ if you want it separate, use a .java file instead (not parsed) _ classes in tabs are inner classes, or use .java files _ http://processing.org/discourse/yabb_beta/YaBB.cgi?board=Syntax;action=display;num=1114393478;start=0 _ not slice() but subset()... get word from casey on how to resolve +_ get platform checker into the latest exhibition piece _ auto-run the javadoc in dist.sh _ doctor a copy of the css file to use p5 defaults @@ -116,18 +125,6 @@ _ and re-copy the css in after generating the doc each time HIGH PRIORITY BUT NOT NECESSITY -_ ability to select monitor via preferences panel -_ this applies to any applet that's run externally currently (verify) -_ make it also work with anything that's run inside of p5 itself -_ check current present code with multiple monitors -_ first pass on full screen -_ exceptions in full screen mode will quit the app completely -_ (can't keep window open because things are hosed) -_ default is that full screen app doesn't cover multiple displays -_ this is fine since opengl can't usually go across both -_ but include an example for how to use full in gl -_ (use toolkit.getscreensize) - _ println() can hose the app for the first 20-30 frames _ need to figure out threading etc _ problem with it launching a new thread for every single update! @@ -480,11 +477,14 @@ PDE - Processing Development Environment PDE / Details - 1 _ preferences + 1 _ preferences window has been hit with the ugly stick 1 _ redo panel to use proper swing layout etc + 1 _ also needs to look good across all platforms 1 _ setting sketchbook to a folder on the network 1 _ does this work? test on both on mac and pc.. + 1 _ or if not, should recommend people against it + 1 _ (i.e. folders disappearing if net has trouble) 1 _ exception in setup() on external app doesn't kill run button 1 _ also doesn't kill external vm