Changes in SuperWaba 4.0a 1. fixed SWScanner event problem 2. added fixes of Pierre to socket.readWriteBytes. Changes in SuperWaba 4.0 1. added Catalog.getRecordOffset() to return the current internal record cursor. 2. putted the Catalog.delete routine in a method. now we check also in the user.dir and in the current path 3. fixed a problem if the file was created in the same session it is being deleted, it may not have been written to disk, so we return without creating the empty file. 4. made some fields in the Keyboard class public static. You may now access them directly, but please send us the changes you made for a particular language so other people can use it too. Removed setAuxKeys, now the changes are made directly in setLanguage method. 5. replaced short with int in the methods that used short as index parameter in IntVector. Now the short is treat as a unsigned short in the save/load from datastream 6. now the fonts can be read from the SuperWaba.jar file. . changed build.xml to add the .java sources to the SuperWaba.jar file so it can be used to step into SW library when debugging. 7. Added Holger Schoenecker changes to support double density icons for Palm OS 5. These icon sizes are: 30x18x1, 30x18x8, 44x44x1 and 44x44x8 8. fixed problem when file was not found in the classpath. 9. removed the MINIMIZE_COLLISIONS from SWLib.c. Now the MethodsHash program will compute the best HASHSIZE, you just need to place it at the CustomLib.h file. 10. fixed problem when a class hash ended with FF, and it was causing a reset, bc the classHashList was with size FF (thus, ranging 0 to FE). 11. added support for wav files under PalmOS 5. Modified utils/InputFile. Unfortunately, due to the necessity to release the semaphore, the sound must be played synched, not asynched. The wav file is included in the PDB, so it can't be above 64kb of size. 12. fixed problem in PalmOS 5 for MultiEdit. 13. fixed problem in Vm.sleep in PalmOS 5. I made this change in version 3.5, but it disappeared! 14. new Garbage Collector: more confiable, less memory usage 15. now array len and type require 4 bytes instead of 8. This happens bc array len will never be greater than 64kb (since a memory chunk, due to the new GC, must be smaller than 64kb) 16. optimized a few things in the VM. Improved speed in 15% . changed the way native libraries are implemented. NativeMethods4JDK no more extends NativeMethods; there's no more a nm field (methods are all static now), thus there's a change in the stack of the native methods. See how the Scanner class is implemented to understand everything. . removed some unused native method definitions. 17. fixed a problem when exiting the vm in WinCE. . moved scanner to xplat directory, since now it runs in both Palm OS and Windows CE (thanks to Dave Slaughter). . created the Windows CE native library specification. Now you can create native libraries (in C) in Windows CE. 18. added Edit.setCursorPos and getCursorPos, so you can now specify the starting cursor position (and also the selected text) and get the selected text position. Note: read the docs! 19. added MenuBar.setItems so you can update the menubar items at runtime. 20. now if swserial.properties is not found, it uses the default values. 21. added Hoe's code to superwaba.ext.xplat.io.BufferStream, which adds error checking. 22. added a change to ResizeStream.endRecord where it will delete the record if nothing was written. . added Simon Davis changes to the GPS class. 23. now in Image.getScaledInstance, test if the width/height are the same, what returns the original image 24. now if the user installs the 5SW.pdb font by mistake in an old device, the font file is deleted. . added Frank's changes to fix horizontal/vertical validation in the Sprite class. . fixed some warnings that Eclipse was giving regarding the source code of SW. Note that some warnings (not changed) results in bugs! . changed the maximum chunk size to 65500 instead of 65400. . new class superwaba.ext.xplat.util.xml.RecordsStreamBuffer.java: This class adds support for parsing a Xml file splitted into different records of a Catalog. It is useful if your xml is too big to fit in a single record. 25. fixed problem when socket was trying to be reopenned and it was already open (it was failing, now it is continuing to work). 26. now loadAllFonts use DmQueryRecord instead of DmGetRecord. This was needed to make it work on the new Kyocera device, which was halting for font "Utah Bold for Kyocera 14" 27. fixed problem in TT when openning IRCOMM (and also the other ports) 28. fixed sublaunching problems when a library has registered launchcodes. 29. now the class part consumes less memory 30. fixed problem in Hard keys in WinCE 31. now Warp sets the backup bit of the generated pdb files to true. 32. added Peter Dickerson changes to improve accuracy in Math.pow. 33. changed some static vars to allocate memory at runtime. 34. fixed problem in HtmlRenderer not erasing the container when scrolling. 35. now highResPrepared is true as default for non-PalmOS platforms. 36. fixed a problem regarding Interface casting occuring only in WinCE . fixed WinCE icons in exe files. 37. fixed Catalog.rename in WinCE. 38. fixed a bug when Window.setTitle was called, the menu rect was not updated. 39. fixed problem when using popupBlockingModal and exit the app issue a reset. 40. optimized Graphics.drawText in Windows CE. Got a 35% speed gain! But there's a problem now: the current background color is used for the text background, so your programs may behave incorrectly in wince if you change the background color before drawing the text. When emulating a wince device in desktop, the background color will be used to fill the text. 41. fixed bug in VM when storing multifont files. 42. now Catalog.getRecordAttributes/setRecordAttributes receive the record index as parameter. The old methods were deprecated and will be removed in next version. 43. now you can specify the title of the app in PocketPC, using /T in Exegen. If you do "/T null", then the app will be fullscreen. 44. added Window.validate method. Changed the scanner method to call validate so users don't need to repaint the window themselfes. 45. fixed version information in windows ce stubs 46. added support for HPC2000. now there are 2 more cab files, 2 more SuperWaba.exe, 2 more stubs. 47. fixed Graphics.clearScreen at desktop to erase the full screen ignoring the clip (as device). 48. added Dave Slaughter changes: . now SW can be installed in any directory of the device . made the code compatible with GNU GCC . now SW can also run standalone (without JDK) in the desktop 49. fixed socket problems in PalmOS 5. 50. fixed problem with Palm OS 3.5.2 devices that was causing a crash when a popup window appears (Treo) 51. added Frank's fix to sprites in animation. 52. added Pierre G. Richard code to improve utf8 handling in the vm. 53. fixed Keyboard layout when running 320x320 54. added Frank's fix to BmpDecoder to handle zero-length bmp files. . changed "Can't access app classes" second chance to "Can't initialize app". 55. added a delay to the fatal error screen bc when initializing, the screen just pops up and goes away faster than we can see. 56. fixed a problem in the method call optimization i did in this release, bc in some cases, the _iclass was not storing the methodMapNum, but the already-bound class 57. now you can specify a full path when openning a Catalog (only in Windows CE!). The path must start with \ or .. so this can work. . added new class ToolTip created by Arnaud Farine. You can use it as a popup tooltip for controls. Very useful. The user click and hold to see the tooltip. 58. now if the deleteCatalog/rename can't find the file in the current path, test without a path so if the user is giving a full path it will work. 59. fixed Image.getScaledInstance in PalmOS 5. 60. fixed problem if max=0 in ProgressBar. 61. fixed problem in PalmOS 5 when an error message appears, the delay was not working. 62. now SuperWaba runs as win32 application! 63. added Alex Muc changes to let Vm.debug display msgs even if JavaBridge.showMsgs is false. . changed all Vm.debug in all NativeMethods4JDK so if user turn off showMsgs, no VM warning at all will be shown. 64. now F10 emulates the ACTION key. 65. fixed (again) fonts in WinCE. 66. fixed TTF2PDBs: it was not computing the width of blank chars, thus leading to problems in some fonts. 67. fixed TTF2PDBs: it was not aligning the rowwords, so it was not working in WinCE for some fonts. 68. In WinCE, now the error description appears also in the debug console. 69. Now calling unpop when only the MainWindow is active does nothing. To exit the app, you must now explicitly call MainWindow.getMainWindow().exit(...). 70. if an exception was thrown in the app initialization, show it 71. made Label.align member public. 72. added support for more keys (HARD1-4,ACTION) in Vm.getSystemKeysPressed for Win. 73. added a special case to repaintActiveWindows: if the last remaining window occupies the whole screen, then redraw only it instead of all. 74. fixed a problem that if the app was running and the user called the app icon again, the app was not going to the foreground. 75. fixed clipping problems in drawVLine at device. 76. Added Tomaz Foa changes to avoid some problems when out of memory occurs. . now waba.fx.Rect and Image aren't final anymore. 77. fixed TAB_BORDER gaps on borderGaps array. It was 0, changed to 2. 78. fixed clipping problems in the Edit class. 79. fixed rare case where an invoke virtual was called before invoke special . added a new target to ant: build-device-nojopt. it will not run jopt. good for debugging. 80. fixed bug in Convert.toDouble(""). !81. Sir Anodos PORTED THE DB2E TO POCKET PC! The DB2e library has changed some class and some package names. The BoundXXX classes were renamed to DB2EBoundXXXX, DB2Exception was renamed to DB2EException, and there was a few package name changes. 82. now the invokevirtual and invokespecial dynamically change the quickbind values. 83. made ComboBox.popupPop member public. You can use it to popup the combobox window. 84. added Kambiz Darabi changes to drawText to avoid resetting the device when a null string is passed. 85. fixed problem if an exception was thrown after the first one was handled, this first exception was masking the new one. 86. changed the name of the .LNK file created, if /P is being used, to be the prcName one. (it was equal to the prcName if /P was not specified) 87. fixed problem with growStack that was leading to stack corruption. . fixed mispelling in Data.THRUSDAY. Thanks to Sean. 88. fixed Label placement when right aligned and inverted. 89. fixed TabPanel clientRect when it has no borders 90. added Date.wasDateValid to be used to check if the given date was or not valid 91. new Time.getTimeLong and a new Constructor to place the time into a long 92. added Ramon Chiara changes to XmlLiteParser to fix a bug (= instead of ==) 93. added some Pierre fixes to Edit. 94. fixed ce/Catalog.DmNewRecord when atP was -1 (to add at the catalog's end)