Changes in SuperWaba 5.5 (20051003) . new ARM VM for Palm OS 5 devices, leading to speed improvements from 10 to up to 40 times. . SuperWaba now runs fine on Symbian 7.0s(Nokia 6600, etc). . Synchronization API now ported to Pocket PC, using RAPI. Read the Conduit chapter on the PDF for more info . Faster PDBDriver (version 3.0). Now it stores many database rows in a single pdb record, which makes it incompatible with version 2.x. . Added a complete Sales Force Automation sample (superwaba.samples.app.sales). With it you will learn the correct way to create SuperWaba programs. 1. now the "Program error" messagebox on windows ce stays on top until the user dismiss it. 2. fixed key not repeating on SDL vms. 3. added a verification on Desktop if the PDB's record offset matches the computed one. It now throws an Exception if it doesnt. . fixed warning about a wrong-palletized 48x48x8 bmp when running exegen. 4. fixed problem for Wince Catalogs not writting correctly the first record. It was making the pdb two bytes shifted, when comparing with the ones created on desktop or Palm OS. 5. fixed MultiEdit throwing an IndexOutOfBounds when the right arrow key was pressed at the end of the text. . fixed PalmOS5_And_16bpp.exe full installation file for Palm OS not including SWNatives.prc. 6. added a time elapsed field on the SWUnit to measure how much time the test took. 7. added Catalog.getName to retrieve the name with which the catalog was created. 8. added Catalog.setRecordOffset to directly set the offset. 9. now the record offset is being checked in _readWriteBytes. 10. fixed catalog name not being correctly removed from the hashtable. 11. fixed catalog.rename not adding the name to _dbHash 12. now ResizeStream?.resizeRecord only calls resizeRecord if the record's size has been changed. . new class RowIterator?, used to iterate through each row of the table and verify/change the row attributes (which may be SYNCED, DELETED, UPDATED, NEW). 13. now the applet defaults to 8bpp 14. avoid infinite recursion on ResizeStream?.writeBytes when trying to allocate too much memory for the record. 15. added support for focus traversal with the keyboard on all user interface controls (you must set Settings.keyboardFocusTraversable to true). The focus is changed by using the 5-way navigation, present in most devices. .The Container.tabOrder vector holds the controls that will be traversed in order. By default, this is the order in which they were added to the container. You can change that order by reassigning t he vector with the elements. Check the ContainerSwitch? sample. 16. added Settings.penless (defaults to true on cell phones that does not support pen input). To provide the input, added the class waba.ui.Keypad, which mimics the input using 0-9*# on cell phones. 17. added waba.ui.Grid, a beautiful Grid with multi-selection support, and direct scroll. 18. added stripes to superwaba.ext.xplat.ui.db.Grid. 19. added PopList?/ComboBox.fullWidth, to use the full screen width on the listbox. 20. added Edit.autoSelect, to auto select the text when the focus moves to the Edit. 21. added ListBox?.useFullWidthOnSelection, so that the item selected will have the full width instead of the selected text's width 22. fixed a problem with MultiEdit? when using the up key in the first row. 23. added waba.io.NativeMethods4JDK.CatalogBag.closeOnFinalize, to specify when the garbage collector should close the catalog on exit. 24. fixed NativeMethods4JDK?.fileListFiles throwing a NullPointerException? when no files were found. 25. fixed SpinList? class not drawing fine on Highres devices. 26. added a time elapsed field to SWUnit. 27. new method Button.simulatePress, to simulate a button press (used in controls like ComboBox?). 29. placed the routine that draws the checkmark of waba.ui.Check in a method (paintCheck) that can be called directly. 30. new method Container.changeHighlighted, used to select the next control that will hold the focus. . renamed Control.canReceiveFocus to focusTraversable. This define that the control will not receive focus by using the keyboard arrows. Added also other methods, like Window.setHighlighted/getHighlighted/drawHighlight 31. new method Control.translateFromOrigin, used to find the absolute coordinate of the control. Just like GetAbsoluteRect?, but instead of returning a rect, a Coord is used instead to receive the x,y values . new superwaba.samples.ext.ui.gadgets.ExtGadgets sample that shows how to use the user interface gadgets presented in the superwaba.ext.xplat.ui package 32. new method Graphics.drawDottedCursor, which is equivalent to drawCursorOutline, but using dots instead of a filled line. 33. new KeyEvent?.ACTION_KEY_PRESS event, which is called by the system to tell that the user pressed the ACTION or ENTER to let the control gain focus. The controls will capture the arrow+enter+action keys until they set isHighlightning to true again. Added methods KeyEvent?.isActionKey/isUpKey/isDownKey/isPrevKey/isNextKey. 34. added handy methods to popup a window: Window.popupModal() and Window.popupBlockingModal. Instead of Window.getMainWindow().popupModal(new MessageBox?(...)), you do new MessageBox?(...).popupModal (or popupBlockingModal). 35. added an extension library to open a GPRS connection on Pocket PC 2002 systems. Thanks to IClass Consultoria. . updated the Watch sample (now named WorldWatch?) 36. added support for Emulation of Nokia devices. The screen resolution must be 176x189. It then uses the 6SW.pdb font file, which is the one that is used at the device. The font's height is 14, and it fits like the standard Palm OS 160x160 resolution. . Updated the sample html names to match newer devices, and added Nokia6600. 37. now the sip is only reset on a wince program exit if it was set to top. 38. now pdbdriver 3 does not search for old-style table names, ie, without the creator id before the name 39. fixed xrealloc for palm68k when the first allocation was in main memory and the new allocation was too big to fix in main memory. 40. now File.isAvailable checks, on Palm OS, if the card is inserted, besides if it support vfs. 41. fixed button ok turning into x in Windows CE when the app loose and recovered focus 42. fixed WinCE? internal keyboard that was getting higher each time a SW app was called with the keyboard already open. 43. fixed bug in PDBDriver when reusing prepared statements on Queries. 44. now Socket.disconnect disconnects the RAS connection on WinCE?. 45. made Font members public. fixed desktop problem that font's name was not being changed when the font was not found. 46. added sanity checks for xmalloc/xfree/xrealloc 47. added horizontal scroll support for SWUnit. Also changed a bit the layout. Changes in SuperWaba 5.2 (20050729) 1. fixed setFilePos returning eof as error. 2. Added Pierre's fixes that avoid that the KCC gets popped up twice. 3. Added Pierre's fixes to socket on win32. 4. Added Pierre's changes on the way a listbox's cursor is drawn. Instead of eraserect, use a fillrect with another item draw. 5. added Jean Perez changes to call compact after each gc. This had lowered the amount of memory in some tests i made with bench, uibench and htmlbrowser. 6. fixed some problems pointed out by FindBugs?. 7. added indirect jump on GCC-based compilers. This lead to a 5% speed improvement. 8. added an extension library to open a GPRS connection on Pocket PC 2002 systems 9. changed the way applet loads the class. Requested by Aldo to solve problems downloading classes from the net. 10. changed Edit.isSymbian to solve problems with Retroguard. 11. fixed growFileSize not working on win32/wince. this fixes PDBDriver.purge. 12. fixed GuiBuilder? not setting the back/fore colors of the container. 13. fixed deadlock on paint that occured when a blocking modal window was popped up with a timer, on applet. 14. changed the volume that is used to write Files to. Instead of using the first volume available, it uses the last one. This fixes the problem with T5, which first volume is the main memory, and thus lets it write on its last volume, which is the memory card. 5.2a 15. fixed listbox selected item's color. Changes in SuperWaba 5.12 (20050625) 1. added support for TAB on applet. It can now switch between edits using the tab key. 2. fixed PDBDriver.getLabel when the sql is of type "select *". 3. fixed problem with Convert.toString(Math.log(2.718281828459046)). 4. fixed socket not disconnecting on Palm devices. 5. fixed select with '' (empty strings). 6. fixed select with -/+ signs before a number. . Added superwaba.ext.io.LineReader class to read lines from a Stream. 7. fixed SWBreak problem where its background was being erased on the game start. This problem was caused by 511_7. 8. Now the temp buffer used to read data from Socket, File and SerialPort? is decreased until it can fit on the PDA's memory. It may read less than requested data, but it will at least read something, instead of just returning with error. 9. added a new parameter to ByteArrayStream.setSize: copyOldData. If true, the current read data is copied to the new buffer. 10. fixed return value on File.read/writeBytes. 11. fixed problem on File.read: it was returning -1 when the file was read until the end of file. 12. fixed ScrollBar? when minimum value is not zero. 13. fixed floating point problems in Epoc (all Little Endian mixed targets). Changes in SuperWaba 5.11 (20050429) . fixed Companion's toc . fixed Scanner support for PocketPC. It was still on old style. 1. fixed Vm.exec on win32. 2. now in Html.Style, the style defaults to left instead of right. This fixes problem when align=justify. 3. Fixed sound on win32/wince. The beep now beeps, and the tone now tones, but there's a big gap between the tones that must be fixed. 4. fixed HotSync restart when registering/unregistering the conduit. Added a message, bc now the blank window stays for some time. 5. fixed scrollbar paint on PalmOS style. 6. fixed base64 encoding of signed data. 7. fixed container repaints when swapping from one container to another with the same color. . fixed ExeFile to correctly create installation on new Pocket PC devices. 8. now the HtmlContainer scrollbar is set to the default instead of a fixed value. 9. fixed Png/jpeg/gif load not setting the palette when bpp=8 on desktop. 10. added IntHashtable.getValues. 11. added IntVector(int[]) constructor. 12. took the modulus of the jpeg/gif/png pixels on desktop when running in 16bpp. This fixes routines like the Image.changeColors. 13. fixed Graphics.getPixel when running on 16bpp displays (as most wince devices). Now returns in 24-bit RGB values instead of 5-6-5. This also fixes Image.changeColors. Changes in SuperWaba 5.1 (20050415) 1. added back code to use DataPath on windows 32. 2. fixed ghosts repaints when debugging code on Applet. 3. fixed File.exists on win32 when the path ends with slash. 4. added Button.cutText. Setting to false may allow the button paint fine on scrollable containers. 5. NEW USER INTERFACE STYLE: FLAT, to mimic Pocket PC 2003. 6. added horizontal scroll by left/right keys to Grid class. 7. NEW! SyncConduit API to create PalmDesktop conduits using SuperWaba. No more need to learn/use JSync. . In package superwaba.samples.ui.painter, renamed Painter to Blackboard; renamed SaveLoadImage? to Painter 8. added Hashtable.getValues and getKeyValuePairs. 9. added back the code the handle copy/paste on win32/wince. 10. added back the code of serialPortReadCheck in win32/wince. . SuperWaba and its libraries are now compiled in Visual C++ 6 (for Windows 98 and beyond). This removed the need of the msvcr71.dll, and also optimized the program, which is 33% faster. MatchBox? also do not need anymore this dll (note that it shrinked from 324kb to 68kb). 12. Added superwaba.ext.xplat.io.http.Base64 class to encode/decode in Base64. 13. HttpStream now has support for POST. . added superwaba.ext.xplat.xml.DumpXml class, which dumps the contents of a xml using the parser. Useful to learn how to parse a file. 14. new constructor to XmlReadableSocket to set the Options. 15. new methods getCopy and setSize on ByteArrayStream. 16. Fixed Vm.exit error code not being returned to the OS on Win32. 17. fixed XmlTokenizer requiring too much memory when growing buffer. 18. fixed Edit cursor being drawn even when the Edit was not enabled. 19. fixed Vm.debug(null) on desktop. 20. added HtmlContainer.loadImage, to let the caller render the image from elsewhere. 21. added TextSpan?.mapToSWFontSize, to change the fontSize to the SuperWaba's one. If <= 2, use small, else, use big fonts.
22. added a default constructor to html.Document, and a method renderDoc. This is useful if you want to render the document not on the constructor's call. 23. fixed recognition of long and float numbers on PDBDriver. 24. fixed PushButtonGroup? not acceptint the same button being pressed after a setSelected(-1). 25. fixed setValue on ScrollBar? when trying to set a value greater than the maximum (no value was set, when the correct is to set to the maximum). Also fixed 502_5 setting to the wrong value. 26. added ScrollBar?.minDragBarSize, where the user can define the mininum dragbar size, in pixels. Grown the default from 3 to 5 pixels. 27. now SW on win32 checks if the current directory has "superwaba" on it. If not, the user is probably trying to run sw from the wrong directory, then we change the directory to \SuperWaba, which is the mandatory folder to run SW from. IMPORTANT: since this is done only when SW starts, it is important that the sdl.dll is present on the current folder (or c:\SuperWaba added to the path), otherwise it wont be found and the graphics will not work fine. 28. changed html.Table to try to obtein better results. I'm not convinced about the change, it needs a better fix. 29. fixed Scanner name on attachNativeLibrary. Thanks to Claudio Zani. 30. more fixes to dumpStackTrace. 31. fixed problems openning catalogs on READ_ONLY mode. Now it ignores this flag and open always in read-write mode. This was needed because even read-only dbs must write header information, and openning in read-only will prevent it, thus leading to messages like "records left locked in an unprotected closed database". Changes in SuperWaba 5.04 (20050401) 1. Placed back the code to handle commandline parameters passed between SuperWaba processes. 2. Fixed application exit when MainWindow?.exit is called before the main event loop starts (on the onStart method or on the MainWindow?'s constructor). 3. Fixed JZlib not working for hi compressed buffers. 4. Added Phil Herold fix to remove the warning on windows ce installation. 5. Added getStream method to classes ResizeStream? and DataStream? to return the current attached stream. 6. removed deprecated methods from Catalog: get/setRecordAttributes (the non-static methods) 7. fixed OutOfMemory? exception masking if occured during initialization. 8. fixed error message being masking when happening in the initialization. 9. fixed dumpStackTrace not finding the correct way to stop. 10. fixed the 65500 memory limit not letting allocate a 65500 byte array. . fixed the SWBreak game. 11. fixed ACTION keycode on wince. 12. fixed problems when switching apps on windows ce. 13. fixed query compilation with leading spaces. 14. fixed executeUpdate when no where clause was given. Changes in SuperWaba 5.03 (20050325) 1. Fixed bug on ToolTip? class: don't show the tooltip if the user removes the pen before the required time. 2. Added a new field to Edit: alignment, which can be used to set the Edit's alignment AFTER FOCUS LOSS. 3. Fixed Exegen when the package name is specified using \ instead of / 4. Removed ComboBox alwaysRecomputePopRect. The correct way to handle controls inside a scrollable container is: when it gets scrolled, call broadcastEvent(new ControlEvent(ControlEvent.WINDOW_MOVED,this)); (if possible, cache this ControlEvent). Removed this bc not only the combobox, but all controls must update theirselves when its position gets changed. 5. Added a check at the desktop implementation of Catalog.setRecordPos to see if the Catalog is closed and issue a warning to mimic like in the device. 6. Fixed TestFont? package on TTF2PDBs. 7. fixed problem where the screen was not updated when the swap method was being called from inside a Menu. 8. Placed back the messages that shows when Exegen found a custom program's icon. Now it will show the "found on ..." only when there's an icon prefix. 9. fixed PreparedStatement? not correctly assigning sqlExpression. 10. fixed PDBDriver when using "select * from ..." and using the index to get the value (e.g.: getString(1)). 11. fixed SW_Graphics.updateRectangle not updating correctly the width for the repaint area. Changes in SuperWaba 5.02 (20050311) . placed back the code of Windows's Serial.setFlowControl and setReadTimeout 1. fixed problem in fillPolygon (was not checking all yPoints) . Now MatchBox? is staticly linked. This gets rid of vc7 dlls. 2. fixed Math.atan2(0,-1). 3. fixed appId not being passed to the combobox button. 4. fixed Catalog.rename on win32/wince. 5. Added M. Sicotte's changes to fix the ScrollBar? when the minimum is not zero or minimum is greater than maximum. Rewarded him with 1 point. 6. fixed toLowerCase and toUpperCase on device. 7. fixed problem in createStringFromUtf treating char as signed chars. It was converting > 0x80 chars to negative int16 values. 8. now createString (defined in SW_String.c (sdl) and superwaba.c (68k) do not try to convert the value from utf8. this is needed because when we convert accentuated char8 using the createStringFromUtf, it goes wrong, due to NumUnicodeCharsInUtf8? returning a different number of chars. This change fixes, for example, usernames with accentuation returned in Palm OS. 9. Now Settings.userName returns the name of the logged on user on windows 32. 10. Fixed again pqrs... support on win32. 11. normalized all sw_libdynam and libstatic methods to include the librefnum in all methods. This may simplify the code in the future and fixes a problem that the swvm was linked with one version of the method (the one that does not requires the librefnum) but the library was linked with the one that DOES require. This was probably introduced in the sdl version merged during february. 12. Fixed the waba.sys.Settings on Symbian. 13. Fixed numeric-keypad enter keycode on win32. Changes in SuperWaba 5.01 (20050304) . fixed and restructured a lot the PIMAL classes. Now everything works fine. 1 fixed problem on File class on Windows CE (wrong flags when opening the file in native) 2. fixed problem on DebugConsole? always overritting the text instead of appending. 3. fixed problem when calling popupModal was not showing the dialog. 4. fixed NPE in Label when calling set3d without setting the colors first (dColor was null). 5. Added Niels Zeilemaker changes to fix some problems, during the SIS file creation, with the output path. It was too long for dos notation so it got errors during the sis file creation. 6. fixed MenuBar? not being popped on wince 7. fixed alt+f4 not exiting the win32 app 8. fixed support for numeric keypad on win32 9. fixed error messages on Win32 and WinCE? 10. fixed drawing problems with drawLine 11. fixed fillPolygon in wince when with negative values 12. fixed a Warp issue causing some files to be added twice 13. fixed and optimized some graphics routines, allowing negative values and doing more consistences. 14. now we limit the number of badparam message in 10. 15. fixed problem when returning float types with RETURN32. Now it must be used RETURN32_FLOAT instead 16. added ComboBox.alwaysRecomputePopRect. Set it to true if you add the control to a scrollable container. REMOVED ON 5.03 17. fixed sdl problems with arrow keys and normal keyboard on windows ce and win32. . Removed the need of the msvcrt*.dll files to run the "Windows 98 and beyond" VM. Note that they are still needed to run the Palm installs (Matchbox).