SuperWaba 3.0 Changes . new directory structure to conform to multiple platforms. Next is shown where the files have been moved to: . "org" prefix has been removed. Many org/superwaba/palm/* are now superwaba/* . files SuperWaba.prc and SWNatives.prc moved to superwaba/bin/palm . file SuperWaba.pdb moved to superwaba/bin/xplat/Libraries . SW20.jar renamed to superwaba.jar . superwaba.jar and the SWJar?BPP.html files moved to superwaba/bin/xplat . xplat denotes cross platform . scanner package has been changed from org/superwaba/palm/ext/Scanner to superwaba/ext/palm/Scanner . WGL and WExtras moved to superwaba/ext/xplat. Their corresponding pdb is now copied in superwaba/bin/xplat/Libraries . superwaba/ext/palm has only aaafontview12, irenhanc and scanner. All other directories under org/superwaba/palm/ext moved to superwaba/ext/plat . Renamed most VM source files: . waba.* -> superwaba.* . Graphic.c -> graphics.c . nmpalm_a.c -> nmpalm_defines.c . nmpalm_b.c -> nmpalm_bridge.c . nmpalm_c.* -> native_methods.* -> nmpalm_javalang.c, -> nmpalm_wabafx.c, -> nmpalm_wabaio.c, -> nmpalm_wabasys.c, -> nmpalm_wabaui.c (splitted to the packages) . GraphicPalm.c -> nmpalm_graphics.c . directory SuperWabaStub, SWSymbol and SWNative moved to superwaba/vm/palm . directory MethodsHash moved to superwaba/vm/xplat. This directory also contains the files that need to be filled to make a port of the VM. . Follows the new directory structure: \superwaba +--vm | +--xplat | | \--MethodsHash | +--palm | | +--SWSymbol | | +--SuperWabaStub | | \--SWNatives | \--ce +--ext | +--palm | | +--scanner | | +--aaafontview12 | | \--irenhanc | +--ce | \--xplat | +--wextras | +--edits | +--JTable | +--pjcrypt | +--retroguard | +--Table | +--DateRGF | \--wgl +--examples | +--bench | +--SerialPorts | +--cards | +--barcode | +--GuiBuilder | +--watch | +--threads | +--UIGadgets | +--SWCalc | +--UIBench | +--DrawingControl | +--IRChat | \--ContainerSwitch +--bin | +--palm | +--ce | | +--HPC211 | | +--ARM | | +--MIPS | | +--SH3 | | +--PocketPC | | +--ARM | | +--MIPS | | +--SH3 | | +--PPC211 | | +--MIPS | | +--SH3 | \--xplat | \--Libraries +--classes | +--waba | | +--fx | | +--ui | | +--sys | | +--io | | +--util | | \--applet | \--java | \--lang \--doc +--waba | +--fx | +--io | +--sys | +--ui | \--util \--java \--lang ----------------------------------------------------------------------- 1. fixed checked menu items on Sony Clie. . fixed problem when running as applet . added a html to test sony clie . added sony clie fonts to superwaba.jar 2. completely redesigned GUIBuilder! Take a look at it! 3. new public static member in Button: Set commonGap to a value to make all further buttons with the same internal gap. This is useful when you're creating the buttons but don't want to keep calling the setGap method. Note that this value will be added to the value of gap. Remember to save the current value and restore it when done. . Added Linux setup to how-to-start. Thanks to Christopher C. Stump. 4. made ListBox.drawCursor protected (was private) 5. Now the setPanelsColor of TabPanel also calls the Container.setBackColor for each given color. 6. now if the Container has a different backcolor than its parent, the background is filled. 7. Now TabPanel does not beep when running in desktop. 8. new method Convert.unsigned2hex: 10 times faster than Convert.toString(long, base). . Added 3 new classes to ext/xplat/moreui: InputDialog (to get text from an user) and ColorList (to pickup a color - works in 2,4 and 8 BPP) and ChoicesDialog (where you can provide a filled combobox and let the user select values from it inside a popup window) 9. new constructor Color(String rrggbbInHex). 10. new methods Edit.setMask and Edit.getMask. 11. Graphics.drawArrow: if disabled, now use getCursorColor so it can behave correctly in bright foregrounds 12. Now MessageBox sets the color of the button when the colors are changed too. 13. fixed size of dragging bar of Scrollbar 14. fixed palette movings in Graphics.ImageLoadBMPCompressed on desktop side only. 15. fixed Window panning in limits < 0 16. fixed MessageBox when you scroll using the pgup/pgdn but the arrows were not updated 17. added some colors to the messagebox 18. fixed Catalogs.listCatalogs at desktop adding two times the same entry if it was loaded once. 19. now Catalog.delete on desktop tries to delete the file phisically. But in my tests, File.delete always return false, not sure why. 20. Now, if background is not white, Edit and ListBox use the backColor instead of "getCursorColor" as the cursor color. 21. fix problem in Window when drawing a control before screen limits with doubleBuffer true (try to add a control to -20,10). 22. fixed problem when a dialog box comes alive when opening a socket connection 23. Throwable.printStackTrace now dumps the stack trace into console. 24. now everytime something is added/removed from a ComboBox the neverPopped flag is set to true to make sure the popup window bounds are recomputed. changed flag neverPoped to recomputePopRect 25. Math.random is now deprecated. Use waba.util.Random instead 26. fixed ThreadTest. Now the high priority goes in horizontal and low priority goes in vertical direction. Be careful when using the functions at waba.lang.Math and the original java.lang.Math, bc depending on the classpath, Java.exe will not find the added functions. . renamed PushButtonGroup member atLastOne to atLeastOne 27. fixed bug when using FILL with BEFORE/RIGHT/BOTTOM. Now it gives a warning 28. Now if you add a container to a mainwindow and do not set its bounds before setting the controls bounds . updated example at waba.io.Catalog . removed file _websafepalette.html. putted this info directly on waba.fx.Palette javadocs 29. now Catalog.rename at desktop tries to delete the file (act like a real rename) 30. added Helmut Neeman code to change default constructor of Random to use the current time instead of getTimeStamp. 31. Now the Catalog class is closed by the GC when running in desktop too. Implemented the finalize method to close the DB. . Now there is no more wrp files for Windows CE. It uses the same pdb file created for PalmOS. Changed superwaba/bin files to reflect this. . Renamed fonts Sony*.pdb to HSW*.pdb and SW*.pdb to LSW*.pdb. Now, if the fonts are installed in the device, you'll be able to use small fonts in high resolution devices (specify "LSW" as font name) 32. fixed "record left busy on unprotected closed database" 33. added Luis Lopez code in waba.fx.Sound.midiTone method to play midi notes instead of tones 34. fixed problem when the current tab was changed using TabPanel.setPanel. 35. fixed problem in ResizeStream.restartRecord when the new record size was greater than the old one. Also, translated portuguese comments to english and renamed "writted" to "written". 36. added Johan Stuyts suggestion to change the getClip where it was returning clipx2-clipx1+1. Now it returns clipx2-clipx1. Don't think this will affect anything, bc no SW classes use this method 37. fixed int2str and long2str when an invalid char appeared. 38. added a code at the socket close to cut the line in the Kyocera phone. 39. PopupMenu.onClickedOutsize: added the last condition to fix a problem when this is used not with a menubar. 40. optimized DataStream writes in 10% by removing some for loops in short and int operations. 41. fixed method signature of Graphics.getAnglePoint. 42. new constants: Window.VK_ONTOP, Window.VK_ONBOTTOM, Window.VK_HIDE. New Settings.virtualKeyboard (set to true by devices that has a virtual keyboard). Now Window.setStatePosition can be used to show/place the virtual keyboard of PocketPC devices. 43. new public member Edit.canPopupKCC: if false, the kcc popup is not alowed. 44. Fixed a null pointer exception in Date when the string provided was "". 45. now the Calendar class uses the given date (if any). Added 3 buttons: today, clear and cancel. Added new public flag: canceled (to test when the user has cancelled). 46. fixed "record isnt busy" in PalmOS 4.1 47. fixed bug when a socket popup window is shown in PalmOS >= 3.5 and the VM crashes. 48. fixed socket fatal error when not correctly openned 49. fixed bug when popping up a window like find or socket dialing. 50. fixed a problem in desktop mode that was making impossible to release memory for any control object created. As a result of this fix, now there are no more JavaBridge.GraphicsCreate/GraphicsDispose; all graphics operations use the same WinCanvas._g object. This will probably optimize drawing speed in desktop. 51. new methods fillRectNOCT to fill rects in assembler 68k. 3% speed improvement in control drawings. 52. Now if you give an empty string for an Edit, its preferred width is set to FILL 53. added Lutz Brückner code to make Keyboard class support umlaut characters in German 54. improved vm speed 55. Changed Control class to make always sure that the focused control is enabled and visible 56. added Time.toString to return the time formatted. 57. added method Window.swap to make easier swap containers from the MainWindow. 58. added an important note to the javadocs of Container class 59. fixed infinite repaint loop when control's bounds is less than 0. 60. added graphicsReset to be used to reset the address of the active form (used when a window is popped up and when it closes the screen address may have changed - only in PalmOS >= 3.5) 61. fixed bug in Window.unpop when the container that popped up the window was removed. 62. fixed but in Window.unpop when the control that popped up the window is now disabled. . improved javadocs of Socket and SerialPort. 63. new method static Socket.disconnect to bring down all connections . added example: SocketTest . added Alexander Gross code to fix inserting of Datebook entries in extra.io.builtin.DateBook . removed all deprecated code from wextras 64. in desktop, when writting a catalog back to disk, i disable all busy attributes. 65. added Color selection to DrawingControl. Fixed out-of-bounds error. ! removed waba.io.Compression from standard package. 66. added waba.ui.InputDialog (that's why i removed Compression) . placed Compression class in extra.util . placed all controls of ext/xplat/moreui in the extra.ui package (or, in other words, now they are part of the wextras) . added Alexander Gross classes for Blowfish, Md5, SHA1 and TEA in ext/xplat/pjcrypt. . new file superwaba/ext/xplat/TTF2PDBs: converts true type fonts to PDB files that can be used with SuperWaba (and with other apps) 67. now you can pass a command line to your SW program (running as JDK application): use /cmdline !68. removed Settings.bigFont. Change your code this way: where was "if (Settings.bigFont)" to "if (fmH > 11)". I did this bc each control can have its own font, so using a global var to do this is not good. 69. now Radio and Check are right justified. . note: Radio and Check had their sizes changed. Now they have the same baseline. You program may move a little... 70. fixed preferred width/height for ScrollBar Known limitations (all will be fixed in future releases): . Only one instance of a SW program can run at a time. (fixed in version 3.11) . There's no output to Memo yet, so, i guess the GuiBuilder will not completely work in WinCE . No icon support for the application. Since it is just a .LNK file, it cannot have a separate icon. (fixed in version 3.2) . No scanner support. . When you get a fatal error, you need to reset your device sometimes to make it work again (to unlock locked files)