From 250558d92d0a97dc49a3bfae2218a072f709c70b Mon Sep 17 00:00:00 2001 From: benfry Date: Wed, 23 Jul 2003 04:02:12 +0000 Subject: [PATCH] converting tabs to spaces, adding licensing info --- processing/app/PdeBase.java | 517 +++++++++++++++++++----------------- processing/license.txt | 278 +++++++++++++++++++ processing/todo.txt | 19 +- 3 files changed, 554 insertions(+), 260 deletions(-) create mode 100644 processing/license.txt diff --git a/processing/app/PdeBase.java b/processing/app/PdeBase.java index f56698117..0e564abb3 100644 --- a/processing/app/PdeBase.java +++ b/processing/app/PdeBase.java @@ -1,3 +1,20 @@ +/* -*- mode: jde; c-basic-offset: 2; indent-tabs-mode: nil -*- */ + +/* + Part of the Processing project + Copyright (c) 2001-03 Ben Fry and Casey Reas + + 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. +*/ + import java.awt.*; import java.awt.event.*; import java.io.*; @@ -38,9 +55,9 @@ public class PdeBase extends Frame implements ActionListener { Menu historyMenu; ActionListener historyMenuListener = new ActionListener() { - public void actionPerformed(ActionEvent e) { - editor.retrieveHistory(e.getActionCommand()); - } + public void actionPerformed(ActionEvent e) { + editor.retrieveHistory(e.getActionCommand()); + } }; Menu serialMenu; @@ -86,22 +103,22 @@ public class PdeBase extends Frame implements ActionListener { //System.out.println(System.getProperty("mrj.version")); //System.out.println(System.getProperty("os.name")); platform = (System.getProperty("os.name").equals("Mac OS X")) ? - MACOSX : MACOS9; - + MACOSX : MACOS9; + } else { //System.out.println("unknown OS"); //System.out.println(System.getProperty("os.name")); String osname = System.getProperty("os.name"); //System.out.println("osname is " + osname); if (osname.indexOf("Windows") != -1) { - platform = WINDOWS; + platform = WINDOWS; } else if (osname.equals("Linux")) { // true for the ibm vm - platform = LINUX; + platform = LINUX; } else { - platform = WINDOWS; // probably safest - System.out.println("unhandled osname: " + osname); + platform = WINDOWS; // probably safest + System.out.println("unhandled osname: " + osname); } } @@ -129,9 +146,9 @@ public class PdeBase extends Frame implements ActionListener { //#endif /* frame = new Frame(WINDOW_TITLE) { - public Dimension getMinimumSize() { - return new Dimension(300, 300); - } + public Dimension getMinimumSize() { + return new Dimension(300, 300); + } }; */ frame = this; // clean this up later @@ -139,9 +156,9 @@ public class PdeBase extends Frame implements ActionListener { /* this.addComponentListener(new ComponentAdapter() { - public void componentResized(ComponentEvent e) { - System.out.println("frame listener: " + e); - } + public void componentResized(ComponentEvent e) { + System.out.println("frame listener: " + e); + } }); */ @@ -154,8 +171,8 @@ public class PdeBase extends Frame implements ActionListener { windowListener = new WindowAdapter() { public void windowClosing(WindowEvent e) { - //System.exit(0); - editor.doQuit(); + //System.exit(0); + editor.doQuit(); } }; frame.addWindowListener(windowListener); @@ -169,22 +186,22 @@ public class PdeBase extends Frame implements ActionListener { //System.err.println("userdir = " + System.getProperty("user.dir")); if (PdeBase.platform == PdeBase.MACOSX) { - //String pkg = "Proce55ing.app/Contents/Resources/Java/"; - //properties.load(new FileInputStream(pkg + "pde.properties")); - //properties.load(new FileInputStream(pkg + "pde.properties_macosx")); - properties.load(new FileInputStream("lib/pde.properties")); - properties.load(new FileInputStream("lib/pde_macosx.properties")); + //String pkg = "Proce55ing.app/Contents/Resources/Java/"; + //properties.load(new FileInputStream(pkg + "pde.properties")); + //properties.load(new FileInputStream(pkg + "pde.properties_macosx")); + properties.load(new FileInputStream("lib/pde.properties")); + properties.load(new FileInputStream("lib/pde_macosx.properties")); } else if (PdeBase.platform == PdeBase.MACOS9) { - properties.load(new FileInputStream("lib/pde.properties")); - properties.load(new FileInputStream("lib/pde_macos9.properties")); + properties.load(new FileInputStream("lib/pde.properties")); + properties.load(new FileInputStream("lib/pde_macos9.properties")); } else { - // under win95, current dir not set properly - // so using a relative url like "lib/" won't work - properties.load(getClass().getResource("pde.properties").openStream()); - String platformProps = "pde_" + platforms[platform] + ".properties"; - properties.load(getClass().getResource(platformProps).openStream()); + // under win95, current dir not set properly + // so using a relative url like "lib/" won't work + properties.load(getClass().getResource("pde.properties").openStream()); + String platformProps = "pde_" + platforms[platform] + ".properties"; + properties.load(getClass().getResource(platformProps).openStream()); } //properties.list(System.out); @@ -210,15 +227,15 @@ public class PdeBase extends Frame implements ActionListener { if (program != null) { // don't beautify if it's java code if (program.indexOf("extends PdePlayer") == -1) { - // don't convert ; to \n if scheme - if (program.charAt(0) != ';') { - if (convertSemicolons) { - program = program.replace(';', '\n'); - } - // not scheme, but don't beautify if it's python - if (program.charAt(0) != '#') - beautify = true; - } + // don't convert ; to \n if scheme + if (program.charAt(0) != ';') { + if (convertSemicolons) { + program = program.replace(';', '\n'); + } + // not scheme, but don't beautify if it's python + if (program.charAt(0) != '#') + beautify = true; + } } } */ @@ -274,25 +291,25 @@ public class PdeBase extends Frame implements ActionListener { // is currently selected item = new MenuItem("Cut", new MenuShortcut('X')); item.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - editor.textarea.cut(); - } + public void actionPerformed(ActionEvent e) { + editor.textarea.cut(); + } }); menu.add(item); item = new MenuItem("Copy", new MenuShortcut('C')); item.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - editor.textarea.copy(); - } + public void actionPerformed(ActionEvent e) { + editor.textarea.copy(); + } }); menu.add(item); item = new MenuItem("Paste", new MenuShortcut('V')); item.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - editor.textarea.paste(); - } + public void actionPerformed(ActionEvent e) { + editor.textarea.paste(); + } }); menu.add(item); @@ -300,9 +317,9 @@ public class PdeBase extends Frame implements ActionListener { item = new MenuItem("Select All", new MenuShortcut('A')); item.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - editor.textarea.selectAll(); - } + public void actionPerformed(ActionEvent e) { + editor.textarea.selectAll(); + } }); menu.add(item); @@ -323,13 +340,13 @@ public class PdeBase extends Frame implements ActionListener { menu.add(historyMenu); item = new MenuItem("Clear History"); item.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - if (!editor.historyFile.delete()) { - System.err.println("couldn't erase history"); - } - rebuildHistoryMenu(historyMenu, editor.historyFile.getPath()); - } - }); + public void actionPerformed(ActionEvent e) { + if (!editor.historyFile.delete()) { + System.err.println("couldn't erase history"); + } + rebuildHistoryMenu(historyMenu, editor.historyFile.getPath()); + } + }); menu.add(item); menu.addSeparator(); } @@ -349,30 +366,30 @@ public class PdeBase extends Frame implements ActionListener { rendererMenu.add(normalItem); normalItem.setState(true); normalItem.addItemListener(new ItemListener() { - public void itemStateChanged(ItemEvent e) { - openglItem.setState(false); - normalItem.setState(true); - } + public void itemStateChanged(ItemEvent e) { + openglItem.setState(false); + normalItem.setState(true); + } }); openglItem = new CheckboxMenuItem("OpenGL"); rendererMenu.add(openglItem); openglItem.addItemListener(new ItemListener() { - public void itemStateChanged(ItemEvent e) { - openglItem.setState(true); - normalItem.setState(false); - } + public void itemStateChanged(ItemEvent e) { + openglItem.setState(true); + normalItem.setState(false); + } }); externalEditorItem = new CheckboxMenuItem("Use External Editor"); externalEditorItem.addItemListener(new ItemListener() { public void itemStateChanged(ItemEvent e) { - //System.out.println(e); - if (e.getStateChange() == ItemEvent.SELECTED) { - editor.setExternalEditor(true); - } else { - editor.setExternalEditor(false); - } + //System.out.println(e); + if (e.getStateChange() == ItemEvent.SELECTED) { + editor.setExternalEditor(true); + } else { + editor.setExternalEditor(false); + } } }); menu.add(externalEditorItem); @@ -440,10 +457,10 @@ public class PdeBase extends Frame implements ActionListener { public void actionPerformed(ActionEvent e) { try { - undo.undo(); + undo.undo(); } catch (CannotUndoException ex) { - //System.out.println("Unable to undo: " + ex); - //ex.printStackTrace(); + //System.out.println("Unable to undo: " + ex); + //ex.printStackTrace(); } updateUndoState(); redoAction.updateRedoState(); @@ -451,13 +468,13 @@ public class PdeBase extends Frame implements ActionListener { protected void updateUndoState() { if (undo.canUndo()) { - this.setEnabled(true); - undoItem.setEnabled(true); - putValue(Action.NAME, undo.getUndoPresentationName()); + this.setEnabled(true); + undoItem.setEnabled(true); + putValue(Action.NAME, undo.getUndoPresentationName()); } else { - this.setEnabled(false); - undoItem.setEnabled(false); - putValue(Action.NAME, "Undo"); + this.setEnabled(false); + undoItem.setEnabled(false); + putValue(Action.NAME, "Undo"); } } } @@ -471,10 +488,10 @@ public class PdeBase extends Frame implements ActionListener { public void actionPerformed(ActionEvent e) { try { - undo.redo(); + undo.redo(); } catch (CannotRedoException ex) { - //System.out.println("Unable to redo: " + ex); - //ex.printStackTrace(); + //System.out.println("Unable to redo: " + ex); + //ex.printStackTrace(); } updateRedoState(); undoAction.updateUndoState(); @@ -482,13 +499,13 @@ public class PdeBase extends Frame implements ActionListener { protected void updateRedoState() { if (undo.canRedo()) { - this.setEnabled(true); - redoItem.setEnabled(true); - putValue(Action.NAME, undo.getRedoPresentationName()); + this.setEnabled(true); + redoItem.setEnabled(true); + putValue(Action.NAME, undo.getRedoPresentationName()); } else { - this.setEnabled(false); - redoItem.setEnabled(false); - putValue(Action.NAME, "Redo"); + this.setEnabled(false); + redoItem.setEnabled(false); + putValue(Action.NAME, "Redo"); } } } @@ -527,58 +544,58 @@ public class PdeBase extends Frame implements ActionListener { sketchbookFolder = new File(get("sketchbook.path", "sketchbook")); sketchbookPath = sketchbookFolder.getCanonicalPath(); if (!sketchbookFolder.exists()) { - System.err.println("sketchbook folder doesn't exist, " + - "making a new one"); - sketchbookFolder.mkdirs(); + System.err.println("sketchbook folder doesn't exist, " + + "making a new one"); + sketchbookFolder.mkdirs(); } // files for the current user (for now, most likely 'default') // header knows what the current user is String userPath = sketchbookPath + - File.separator + editor.userName; + File.separator + editor.userName; File userFolder = new File(userPath); if (!userFolder.exists()) { - System.err.println("sketchbook folder for '" + editor.userName + - "' doesn't exist, creating a new one"); - userFolder.mkdirs(); + System.err.println("sketchbook folder for '" + editor.userName + + "' doesn't exist, creating a new one"); + userFolder.mkdirs(); } /* SketchbookMenuListener userMenuListener = - new SketchbookMenuListener(userPath); + new SketchbookMenuListener(userPath); String entries[] = new File(userPath).list(); boolean added = false; for (int j = 0; j < entries.length; j++) { - if (entries[j].equals(".") || - entries[j].equals("..") || - entries[j].equals("CVS")) continue; - //entries[j].equals(".cvsignore")) continue; - added = true; - if (new File(userPath, entries[j] + File.separator + - entries[j] + ".pde").exists()) { - MenuItem item = new MenuItem(entries[j]); - item.addActionListener(userMenuListener); - menu.add(item); - } - //submenu.add(entries[j]); + if (entries[j].equals(".") || + entries[j].equals("..") || + entries[j].equals("CVS")) continue; + //entries[j].equals(".cvsignore")) continue; + added = true; + if (new File(userPath, entries[j] + File.separator + + entries[j] + ".pde").exists()) { + MenuItem item = new MenuItem(entries[j]); + item.addActionListener(userMenuListener); + menu.add(item); + } + //submenu.add(entries[j]); } if (!added) { - MenuItem item = new MenuItem("No sketches"); - item.setEnabled(false); - menu.add(item); + MenuItem item = new MenuItem("No sketches"); + item.setEnabled(false); + menu.add(item); } menu.addSeparator(); */ if (addSketches(menu, userFolder, false)) { - menu.addSeparator(); + menu.addSeparator(); } if (!addSketches(menu, sketchbookFolder, true)) { - MenuItem item = new MenuItem("No sketches"); - item.setEnabled(false); - menu.add(item); + MenuItem item = new MenuItem("No sketches"); + item.setEnabled(false); + menu.add(item); } /* @@ -597,7 +614,7 @@ public class PdeBase extends Frame implements ActionListener { protected boolean addSketches(Menu menu, File folder, - /*boolean allowUser,*/ boolean root) + /*boolean allowUser,*/ boolean root) throws IOException { // skip .DS_Store files, etc if (!folder.isDirectory()) return false; @@ -612,25 +629,25 @@ public class PdeBase extends Frame implements ActionListener { if (list[i].equals(editor.userName) && root) continue; if (list[i].equals(".") || - list[i].equals("..") || - list[i].equals("CVS")) continue; + list[i].equals("..") || + list[i].equals("CVS")) continue; File subfolder = new File(folder, list[i]); if (new File(subfolder, list[i] + ".pde").exists()) { - MenuItem item = new MenuItem(list[i]); - item.addActionListener(listener); - menu.add(item); - ifound = true; + MenuItem item = new MenuItem(list[i]); + item.addActionListener(listener); + menu.add(item); + ifound = true; } else { // might contain other dirs, get recursive - Menu submenu = new Menu(list[i]); - // needs to be separate var - // otherwise would set ifound to false - boolean found = addSketches(submenu, subfolder, false); - if (found) { - menu.add(submenu); - ifound = true; - } + Menu submenu = new Menu(list[i]); + // needs to be separate var + // otherwise would set ifound to false + boolean found = addSketches(submenu, subfolder, false); + if (found) { + menu.add(submenu); + ifound = true; + } } } return ifound; @@ -664,51 +681,51 @@ public class PdeBase extends Frame implements ActionListener { String historyList[] = new String[100]; try { - while ((line = reader.readLine()) != null) { - //while (line = reader.readLine()) { - //while (true) { line = reader.readLine(); - //if (line == null) continue; - //System.out.println("line: " + line); - if (line.equals(PdeEditor.HISTORY_SEPARATOR)) { - // next line is the good stuff - line = reader.readLine(); - int version = - Integer.parseInt(line.substring(0, line.indexOf(' '))); - if (version == 1) { - String whysub = line.substring(2); // after "1 " - String why = whysub.substring(0, whysub.indexOf(" -")); - //System.out.println("'" + why + "'"); + while ((line = reader.readLine()) != null) { + //while (line = reader.readLine()) { + //while (true) { line = reader.readLine(); + //if (line == null) continue; + //System.out.println("line: " + line); + if (line.equals(PdeEditor.HISTORY_SEPARATOR)) { + // next line is the good stuff + line = reader.readLine(); + int version = + Integer.parseInt(line.substring(0, line.indexOf(' '))); + if (version == 1) { + String whysub = line.substring(2); // after "1 " + String why = whysub.substring(0, whysub.indexOf(" -")); + //System.out.println("'" + why + "'"); - String readable = line.substring(line.lastIndexOf("-") + 2); - if (historyList.length == historyCount) { - String temp[] = new String[historyCount*2]; - System.arraycopy(historyList, 0, temp, 0, historyCount); - historyList = temp; - } - historyList[historyCount++] = why + " - " + readable; + String readable = line.substring(line.lastIndexOf("-") + 2); + if (historyList.length == historyCount) { + String temp[] = new String[historyCount*2]; + System.arraycopy(historyList, 0, temp, 0, historyCount); + historyList = temp; + } + historyList[historyCount++] = why + " - " + readable; - } // otherwise don't know what to do - } - } - //System.out.println(line); + } // otherwise don't know what to do + } + } + //System.out.println(line); } catch (IOException e) { - e.printStackTrace(); + e.printStackTrace(); } // add the items to the menu in reverse order /* ActionListener historyMenuListener = - new ActionListener() { - public void actionPerformed(ActionEvent e) { - editor.retrieveHistory(e.getActionCommand()); - } - }; + new ActionListener() { + public void actionPerformed(ActionEvent e) { + editor.retrieveHistory(e.getActionCommand()); + } + }; */ for (int i = historyCount-1; i >= 0; --i) { - MenuItem mi = new MenuItem(historyList[i]); - mi.addActionListener(historyMenuListener); - menu.add(mi); + MenuItem mi = new MenuItem(historyList[i]); + mi.addActionListener(historyMenuListener); + menu.add(mi); } reader.close(); @@ -725,7 +742,7 @@ public class PdeBase extends Frame implements ActionListener { public void itemStateChanged(ItemEvent e) { int count = serialMenu.getItemCount(); for (int i = 0; i < count; i++) { - ((CheckboxMenuItem)serialMenu.getItem(i)).setState(false); + ((CheckboxMenuItem)serialMenu.getItem(i)).setState(false); } CheckboxMenuItem item = (CheckboxMenuItem)e.getSource(); item.setState(true); @@ -761,19 +778,19 @@ public class PdeBase extends Frame implements ActionListener { //System.out.println("building port list"); Enumeration portList = CommPortIdentifier.getPortIdentifiers(); while (portList.hasMoreElements()) { - CommPortIdentifier portId = - (CommPortIdentifier) portList.nextElement(); - //System.out.println(portId); - - if (portId.getPortType() == CommPortIdentifier.PORT_SERIAL) { - //if (portId.getName().equals(port)) { - String name = portId.getName(); - CheckboxMenuItem mi = - new CheckboxMenuItem(name, name.equals(defaultName)); - //mi.addActionListener(listener); - mi.addItemListener(listener); - serialMenu.add(mi); - } + CommPortIdentifier portId = + (CommPortIdentifier) portList.nextElement(); + //System.out.println(portId); + + if (portId.getPortType() == CommPortIdentifier.PORT_SERIAL) { + //if (portId.getName().equals(port)) { + String name = portId.getName(); + CheckboxMenuItem mi = + new CheckboxMenuItem(name, name.equals(defaultName)); + //mi.addActionListener(listener); + mi.addItemListener(listener); + serialMenu.add(mi); + } } } catch (UnsatisfiedLinkError e) { //e.printStackTrace(); @@ -790,22 +807,22 @@ public class PdeBase extends Frame implements ActionListener { // the javacomm solaris stuff, which is the .jar that's included // with the osx release (and rxtx takes over) if (platform == MACOSX) { - try { - System.loadLibrary("SolarisSerialParallel"); - } catch (UnsatisfiedLinkError e) { - //e.printStackTrace(); - problem = true; - } + try { + System.loadLibrary("SolarisSerialParallel"); + } catch (UnsatisfiedLinkError e) { + //e.printStackTrace(); + problem = true; + } } // only warn them if this is the first time if (problem && firstTime) { JOptionPane.showMessageDialog(frame, - "Serial port support not installed.\n" + - "Check the readme for instructions if you " + - "need to use the serial port. ", - "Serial Port Warning", - JOptionPane.WARNING_MESSAGE); + "Serial port support not installed.\n" + + "Check the readme for instructions if you " + + "need to use the serial port. ", + "Serial Port Warning", + JOptionPane.WARNING_MESSAGE); } } @@ -840,69 +857,69 @@ public class PdeBase extends Frame implements ActionListener { } else if (command.equals("Proce55ing.net")) { if (platform == WINDOWS) { - try { - Runtime.getRuntime().exec("c:\\progra~1\\intern~1\\iexplore http://Proce55ing.net"); - //Runtime.getRuntime().exec("start http://Proce55ing.net"); - } catch (IOException e) { - e.printStackTrace(); - } + try { + Runtime.getRuntime().exec("c:\\progra~1\\intern~1\\iexplore http://Proce55ing.net"); + //Runtime.getRuntime().exec("start http://Proce55ing.net"); + } catch (IOException e) { + e.printStackTrace(); + } } else if ((platform == MACOS9) || (platform == MACOSX)) { #ifdef MACOS - /* - try { - com.apple.mrj.MRJFileUtils.openURL("http://Proce55ing.net"); - } catch (IOException e) { - e.printStackTrace(); - } - */ + /* + try { + com.apple.mrj.MRJFileUtils.openURL("http://Proce55ing.net"); + } catch (IOException e) { + e.printStackTrace(); + } + */ #endif } else if (platform == LINUX) { - try { - // wild ass guess - Runtime.getRuntime().exec("mozilla http://Proce55ing.net"); - } catch (IOException e) { - e.printStackTrace(); - } + try { + // wild ass guess + Runtime.getRuntime().exec("mozilla http://Proce55ing.net"); + } catch (IOException e) { + e.printStackTrace(); + } } else { - System.err.println("unspecified platform"); + System.err.println("unspecified platform"); } } else if (command.equals("Reference")) { if (platform == WINDOWS) { - try { - //Runtime.getRuntime().exec("cmd /c reference\\index.html"); - String currentDir = System.getProperty("user.dir"); - Runtime.getRuntime().exec("c:\\progra~1\\intern~1\\iexplore "+ currentDir - + "\\reference\\index.html"); - } catch (IOException e) { - e.printStackTrace(); - } + try { + //Runtime.getRuntime().exec("cmd /c reference\\index.html"); + String currentDir = System.getProperty("user.dir"); + Runtime.getRuntime().exec("c:\\progra~1\\intern~1\\iexplore "+ currentDir + + "\\reference\\index.html"); + } catch (IOException e) { + e.printStackTrace(); + } } else if ((platform == MACOSX) || (platform == MACOS9)) { #ifdef MACOS - /* - try { - com.apple.mrj.MRJFileUtils.openURL("reference/index.html"); - } catch (IOException e) { - e.printStackTrace(); - } - */ + /* + try { + com.apple.mrj.MRJFileUtils.openURL("reference/index.html"); + } catch (IOException e) { + e.printStackTrace(); + } + */ #endif } else if (platform == LINUX) { - try { - // another wild ass guess - String currentDir = System.getProperty("user.dir"); - Runtime.getRuntime().exec("mozilla "+ currentDir + "/reference/index.html"); - } catch (IOException e) { - e.printStackTrace(); - } + try { + // another wild ass guess + String currentDir = System.getProperty("user.dir"); + Runtime.getRuntime().exec("mozilla "+ currentDir + "/reference/index.html"); + } catch (IOException e) { + e.printStackTrace(); + } } else { - System.err.println("unspecified platform"); + System.err.println("unspecified platform"); } } else if (command.equals("Quit")) { @@ -918,9 +935,9 @@ public class PdeBase extends Frame implements ActionListener { } else if (command.equals("Stop")) { if (editor.presenting) { - editor.doClose(); + editor.doClose(); } else { - editor.doStop(); + editor.doStop(); } } else if (command.equals("Refresh")) { @@ -1020,8 +1037,8 @@ public class PdeBase extends Frame implements ActionListener { String s = get(name, null); if ((s != null) && (s.indexOf("#") == 0)) { try { - int v = Integer.parseInt(s.substring(1), 16); - parsed = new Color(v); + int v = Integer.parseInt(s.substring(1), 16); + parsed = new Color(v); } catch (Exception e) { } } @@ -1038,9 +1055,9 @@ public class PdeBase extends Frame implements ActionListener { String fontname = st.nextToken(); String fontstyle = st.nextToken(); return new Font(fontname, - ((fontstyle.indexOf("bold") != -1) ? Font.BOLD : 0) | - ((fontstyle.indexOf("italic") != -1) ? Font.ITALIC : 0), - Integer.parseInt(st.nextToken())); + ((fontstyle.indexOf("bold") != -1) ? Font.BOLD : 0) | + ((fontstyle.indexOf("italic") != -1) ? Font.ITALIC : 0), + Integer.parseInt(st.nextToken())); } @@ -1118,7 +1135,7 @@ public class PdeBase extends Frame implements ActionListener { // Try to open the param string as a URL url = new URL(filename); stream = url.openStream(); - + } catch (Exception e3) { return null; } } } @@ -1126,9 +1143,9 @@ public class PdeBase extends Frame implements ActionListener { try { int offset = 0; while (true) { - int byteCount = stream.read(temp, offset, 1024); - if (byteCount <= 0) break; - offset += byteCount; + int byteCount = stream.read(temp, offset, 1024); + if (byteCount <= 0) break; + offset += byteCount; } byte program[] = new byte[offset]; System.arraycopy(temp, 0, program, 0, offset); @@ -1136,13 +1153,13 @@ public class PdeBase extends Frame implements ActionListener { //return languageEncode(program); // convert the bytes based on the current encoding try { - if (encoding == null) - return new String(program); - return new String(program, encoding); + if (encoding == null) + return new String(program); + return new String(program, encoding); } catch (UnsupportedEncodingException e) { - e.printStackTrace(); - encoding = null; - return new String(program); + e.printStackTrace(); + encoding = null; + return new String(program); } } catch (Exception e) { diff --git a/processing/license.txt b/processing/license.txt new file mode 100644 index 000000000..daebb90a9 --- /dev/null +++ b/processing/license.txt @@ -0,0 +1,278 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. \ No newline at end of file diff --git a/processing/todo.txt b/processing/todo.txt index c6364a2a2..78cb368eb 100644 --- a/processing/todo.txt +++ b/processing/todo.txt @@ -28,19 +28,18 @@ bf _ remove lexer dir from cvs bf _ horizontal scroller on the mac has enormous range bf _ pde_keywords.properties isn't getting copied into work/lib -_ need note about setting classpath on platforms when using expert +bf _ need note about setting classpath on platforms when using expert +bf _ jikes prolly needs cygwin1.dll, and maybe cygiconv-2.dll -_ jikes prolly needs cygwin1.dll, and maybe cygiconv-2.dll +bf _ history +bf _ do people even use it +bf _ oooh.. combine in app to show diffs -_ history -_ do people even use it -_ oooh.. combine in app to show diffs +bf _ get proper tab comments into source files +bf _ get proper licensing info into source files +bf _ write notes about p5 code spec -_ get proper tab comments into source files -_ get proper licensing info into source files -_ write notes about p5 code spec - -_ console -> should be using JEditTextArea, not TextPane +_ console -> should be using JEditTextArea not TextPane _ scroll to most current line, or scroll as changing _ set decent fonts (probably same as editor above), looks bad on mac _ remove the border around the edge