From 4b693768e5fb74e4e2f68043d64fb8465456918a Mon Sep 17 00:00:00 2001 From: benfry Date: Tue, 7 Jan 2003 22:11:03 +0000 Subject: [PATCH] last part of 48 --- build/shared/lib/pde.properties | 4 ++- build/shared/readme.txt | 8 +++-- build/shared/revisions.txt | 16 +++++----- build/windows/dist.sh | 16 ++++++++-- build/windows/dist/Proce55ing.exe | Bin 122880 -> 122880 bytes build/windows/dist/run.bat | 2 +- .../windows/dist/serial/javax.comm.properties | 17 +++++++++++ build/windows/dist/serial/readme.txt | 12 ++++++++ build/windows/launcher/launcher.cpp | 28 ++++++++---------- todo.txt | 27 ++++++++++------- 10 files changed, 90 insertions(+), 40 deletions(-) create mode 100755 build/windows/dist/serial/javax.comm.properties create mode 100755 build/windows/dist/serial/readme.txt diff --git a/build/shared/lib/pde.properties b/build/shared/lib/pde.properties index a0f98f397..e8034ee2f 100644 --- a/build/shared/lib/pde.properties +++ b/build/shared/lib/pde.properties @@ -6,7 +6,6 @@ # a pound sign at the beginning of a line is a comment # parameters need to be un-commented before they take effect - # font size for editor #editor.program.font=Monospaced,plain,12 @@ -93,6 +92,9 @@ editor.program.operator.style=#000000,plain #editor.auto_indent=true #editor.balance_parens=false +# how many lines to scroll for each tick on the wheel mouse +#editor.wheelmouse.multiplier=3 + #serial.port = COM1 #serial.rate = 9600 #serial.parity = N diff --git a/build/shared/readme.txt b/build/shared/readme.txt index 6936eb165..ea0c2c708 100644 --- a/build/shared/readme.txt +++ b/build/shared/readme.txt @@ -1,6 +1,6 @@ PROCE55ING DEVELOPMENT ENVIRONMENT -RELEASE 0048 - 6 JANUARY 2003 +RELEASE 0048 - 7 JANUARY 2003 (c) 2001-03 Massachusetts Institute of Technology and Interaction Design Institute Ivrea @@ -97,7 +97,7 @@ a response. if you want to go straight to the bugs page, it's: http://proce55ing.net/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs when reporting this "bug" please include information about -1. the revision number (i.e. 0047) +1. the revision number (i.e. 0048) 2. what operating system you're using, on what kind of hardware 3. a copy of your code 4. details of the error, which may be the last few lines from @@ -138,7 +138,9 @@ keep, but some of the larger ones that we know about: kill the java runtime and restart your app. this will slowly be ironed out. -- wheel mouse is disabled again in 47 +- there is a report of the blinking text caret disappearing on + windows xp.. hasn't been verified just yet.. + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . diff --git a/build/shared/revisions.txt b/build/shared/revisions.txt index 75be39e17..11b76fb54 100644 --- a/build/shared/revisions.txt +++ b/build/shared/revisions.txt @@ -15,13 +15,15 @@ ABOUT REV 0048 - 7 january 2003 [ windows ] -- the release is now split in two, using 'basic' and 'advanced' versions. - the basic release includes a working java vm, and is all set up and - ready to go. the advanced version is for people who already have java - installed (and don't want to deal with the 20MB download), and know what - they're doing enough that they can also install the serial port code by - hand. instructions on installing the serial code are in the 'serial' - folder inside the advanced release. +- the release is now split in two, using 'standard' and 'advanced' + versions. the standard release includes a working java vm, and is + all set up and ready to go. the advanced version is for people who + already have java installed (and don't want to deal with the 20MB + download), and know what they're doing enough that they can also + install the serial port code by hand. instructions on installing the + serial code are in the 'serial' folder inside the advanced release. + +- wheel mouse works again - increased the default memory allocation to 64 MB. diff --git a/build/windows/dist.sh b/build/windows/dist.sh index 57bd03b9d..d38e9880c 100755 --- a/build/windows/dist.sh +++ b/build/windows/dist.sh @@ -5,6 +5,7 @@ REVISION=`head -c 4 ../../todo.txt` ./make.sh echo Creating P5 distribution for revision $REVISION... +echo # remove any old boogers rm -rf processing @@ -96,6 +97,7 @@ rm -rf processing/lib/export/CVS cp dist/Proce55ing.exe processing/ cp dist/run.bat processing/ cp dist/lib/pde_windows.properties processing/lib/ +cp dist/lib/comm.jar processing/lib/ # convert notes.txt to windows LFs # the 2> is because the app is a little chatty @@ -105,11 +107,21 @@ unix2dos processing/lib/pde.properties 2> /dev/null unix2dos processing/lib/pde_windows.properties 2> /dev/null # zip it all up for release -echo Zipping and finishing... +echo Packaging standard release... +echo P5=processing-$REVISION mv processing $P5 zip -rq $P5.zip $P5 # nah, keep the new directory around #rm -rf $P5 -echo Done. \ No newline at end of file +# zip up another for experts +echo Packaging expert release... +echo +cp -r dist/serial $P5/ +rm -rf $P5/serial/CVS +# remove enormous java runtime +rm -rf $P5/java +zip -rq $P5-expert.zip $P5 + +echo Done. diff --git a/build/windows/dist/Proce55ing.exe b/build/windows/dist/Proce55ing.exe index 748f489ef7c7b9897207d8c8828e84cbbb221f04..372481d63d34e55cdf599876b3d0b97f8ea05bbb 100755 GIT binary patch delta 34172 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 delta 31253 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 TuS(ywUggy8?OV!UTJ*mFh&R*n diff --git a/build/windows/dist/run.bat b/build/windows/dist/run.bat index 04ef34e14..ac2715f7d 100755 --- a/build/windows/dist/run.bat +++ b/build/windows/dist/run.bat @@ -3,4 +3,4 @@ REM --- if you need more ram, change the 64m (which means REM --- 64 megabytes) to something higher. -java -ms64m -mx64m -cp lib;lib\build;lib\pde.jar;lib\kjc.jar;lib\oro.jar PdeBase +java -ms64m -mx64m -cp lib;lib\build;lib\pde.jar;lib\kjc.jar;lib\oro.jar;lib\comm.jar PdeBase diff --git a/build/windows/dist/serial/javax.comm.properties b/build/windows/dist/serial/javax.comm.properties new file mode 100755 index 000000000..37669271b --- /dev/null +++ b/build/windows/dist/serial/javax.comm.properties @@ -0,0 +1,17 @@ +# +# Drivers loaded by the Java Communications API standard extension +# at initialization time +# +# Format: +# Each line must contain ONE driver definition only +# Each line must be of the form: +# driver= +# No spaces or tabs in the line. +# ClassName must implement the interface javax.comm.CommDriver +# example: driver=Win32Serial +# +# +# The hash(#) character indicates comment till end of line. +# +# Windows Serial Driver +Driver=com.sun.comm.Win32Driver diff --git a/build/windows/dist/serial/readme.txt b/build/windows/dist/serial/readme.txt new file mode 100755 index 000000000..4407ced58 --- /dev/null +++ b/build/windows/dist/serial/readme.txt @@ -0,0 +1,12 @@ +in order to use the serial port under this "expert" version of +Proce55ing, you need to install the serial libraries yourself. + +1. figure out where your java runtime is installed + probably something like c:\Program Files\Java\jre-1.4.1_01 + +2. move the 'javax.comm.properties' file to the 'lib' folder + of the java installation + +3. move the 'win32com.dll' file to the 'bin' folder of the + java installation + diff --git a/build/windows/launcher/launcher.cpp b/build/windows/launcher/launcher.cpp index e9beaa392..ec836a6c8 100644 --- a/build/windows/launcher/launcher.cpp +++ b/build/windows/launcher/launcher.cpp @@ -109,11 +109,14 @@ BOOL CLauncherApp::InitInstance() strcpy(testpath, loaddir); strcat(testpath, "\\java\\bin\\java.exe"); FILE *fp = fopen(testpath, "rb"); + int localJreInstalled = (fp != NULL); + /* if (fp == NULL) { AfxMessageBox("no java runtime"); } else { AfxMessageBox("found java runtime"); } + */ sprintf(cp, "-cp \"" @@ -122,15 +125,9 @@ BOOL CLauncherApp::InitInstance() "%s\\lib\\pde.jar;" "%s\\lib\\kjc.jar;" "%s\\lib\\oro.jar;" -#ifdef LOCAL_JRE - "%s\\java\\lib\\ext\\comm.jar" -#endif + "%s\\lib\\comm.jar;" "\" ", -#ifdef LOCAL_JRE loaddir, loaddir, loaddir, loaddir, loaddir, loaddir); -#else - loaddir, loaddir, loaddir, loaddir, loaddir); -#endif //sprintf(cp, "-cp "); //strcat(cp, JAVA_CLASSPATH); @@ -152,14 +149,15 @@ BOOL CLauncherApp::InitInstance() char *executable = (char *)malloc(256 * sizeof(char)); // loaddir is the name path to the current application -#ifdef LOCAL_JRE - strcpy(executable, loaddir); - // copy in the path for jrew, relative to launcher.exe - //strcat(executable, "\\bin\\jrew"); - strcat(executable, "\\java\\bin\\javaw"); -#else - strcpy(executable, "java"); -#endif + + if (localJreInstalled) { + strcpy(executable, loaddir); + // copy in the path for jrew, relative to launcher.exe + //strcat(executable, "\\bin\\jrew"); + strcat(executable, "\\java\\bin\\javaw"); + } else { + strcpy(executable, "javaw"); + } //AfxMessageBox(executable); diff --git a/todo.txt b/todo.txt index d4499e2c3..e608b894a 100644 --- a/todo.txt +++ b/todo.txt @@ -1,16 +1,5 @@ 0048 -pde -_ re-enable wheel mouse -System.getProperty("java.version") -> "1.4.1_01" - -windows -_ remove built-in jre (!) -X modify run.bat, modify .exe file as well -X add -Xmx128m -Xms128m because people running out of memory (pitaru) -X tried with a 3k x 1k image and things broke -o maybe command line read properties from a file in lib - macosx X include note in the readme that 1.4 is not supported X is sketch.properties saving properly under macosx? @@ -24,6 +13,22 @@ public void paint(Graphics g) super.paint(g2); } +pde +X re-enable wheel mouse +X just uses #ifdef for JDK14 +o System.getProperty("java.version") -> "1.4.1_01" + +windows +X remove built-in jre (!) +X add folder and instructions for serial in expert +X modify run.bat, modify .exe file as well +X add -Xmx128m -Xms128m because people running out of memory (pitaru) +X tried with a 3k x 1k image and things broke +o maybe command line read properties from a file in lib + +macos9 +_ do some font tweaking (monaco 9 or 10 might be good) + ................................................................