Changes in this version 1.02 (code-named SuperWaba!) waba now has a new icon! to see it, you have to delete the old waba and install the new one. class waba.util.Vector . changed method find: now it can be used to find strings correctly (it now uses 'equals' instead of '==' when comparing string vectors) . new methods push, pop and peek: lets the Vector act like an Stack classes waba.ui.Edit, Label, Button, Radio, Check, Window . added method toString: returs an unique string id for the control class waba.util.Vm . new method debug(String s, int delay): draws a text in the window, erasing all the line; increments y automatically and starts over when reach the bottom of screen. use only to debug. is the time in ms to sleep. . new method setTrace(boolean on, int delay): prints the current class and method that is being called by the vm. only useful for debug. the contents are printed using the method. if a fatal error is generated with trace on, it warns you and waits 20 secs to display the fatal error window, so you can see the stack trace. . new method clipboardCopy: copies a string to the clipboard . new method clipboardPaste: pastes a string from the clipboard. returns "" if there is no string copied. class waba.ui.Control . changed method getRelativeRect name to getAbsoluteRect. . changed method createGraphics: now it translates it to the window coordinates. class waba.ui.Window - now is also a Modal Popup Window! . new constructor Window(String title, boolean border): adds a title and a border. . new method setTitle(String title): sets the title of this window . new method setBorder(boolean border): sets if this window has a border . changed method _postEvent: redirects the event to the active window. if an popup window is active, dont let the user click outside it. . new method popupModal(Window another): pops up a new modal window, relative to the last popup window openned. . new method unpop(): closes this popup window. if this is the MainWindow, call exit. . new method _doPaint(): used internally to force the immediatly paint. . new protected method _topMost(): returns true if this is the last poped up window. . new method static getTopMost(): returns the topmost window in z-order . new protected variable beepIfOut; cancels the event if the user type outside the window area. to be used in a future window manager . new method onPopup: called imediatly before the popup is done . new method onUnpop: called imediatly before the unpop is done . new method postPopup: called after the popup is done . new method postUnpop: called after the unpop is done . new method isVisible: returns true if this window is the top most window . double buffering now works in palm professional. . new method setStatePosition: used to set the position where the state chars (shift, caps lock, control...) will be displayed. the chars are 8x11 pixels. this method must be called so the status can be displayed. use setStatePosition(Window.STATE_HIDE,Window.STATE_HIDE) to remove the display of the status. a status is valid for all edits on the window. . new method paintTitle: paint the title imediatly. good for constant title updates. class waba.fx.Rect . new method toString: returns the x,y,width,height string. class waba.ui.Edit . corrected bug of a cursor point appearing sometimes in the edit. . now supports cut, copy and paste like normal palm edit. use the 'command' keystroke followed by 'x', 'c' and 'p'. to cancel, type 'control' again or any other key. . new method setMode: used to automatic configure as NORMAL, as DATE or as CURRENCY. if set as DATE, the abc/123 keys will open the Allan's popup Calendar. and it only lets you use the allowed chars for each type. sorry, no international convertion yet (only to date format) class waba.sys.Convert . toUpper and toLower now converts latin accentuated chars. new class waba.ui.PushButtonGroup - can be used to create an matrix of pushbuttons, and has very usefull options. sorry for the big constructor, but i wanted to keep it small. new class waba.ui.Keyboard - all that every waba user ask for! Finally, a popup keyboard to use in the Edit control. new class waba.sys.Settings - has a couple of preferences from palm settings. new class waba.util.Date - provides basic functions on date - thanks to Allan Solomon - modified a little by me to support international formats. new class waba.ui.Calendar - its a popup calendar like the palm's original one. used in the edit control class waba.util.IntVector . new constructor IntVector(DataStream in): constructs a new int vector reading the values from the stream. the stream must be built with the writeTo method. . new method writeTo(DataStream out): writes this vector contents to the specified stream . new method isBitSet(short index): used to let this int vector act like a bit vector. returns true if the bit specified is set. you must guarantee that the index exists in the vector. . new method setBit(short index, boolean on): used to let this int vector act like a bit vector. returns true if the bit specified is set. you must guarantee that the index exists in the vector. class waba.ui.Welcome . changed method of showing version number. now 102 shows 1.02 instead of 1.2 . changed displayed strings. vm changes . added support for international chars. no more strange characters in strings. . added a hashtable. native methods search are now made through it. . added a 5 sec delay on fatal error. sometimes there is a pendown in the event queue and we have no time to see the error window. . MEMORY! now object memory is allocated as a database. this leaves the dinamyc heap to the 2 stacks, and to waba internal needs. conclusion: you can now have up to 64000 bytes of object heap either in palm professional or palm iii or superior. in the future: 1 Mb of free heap! . the /m runtime parameter now only accepts up to 64000 bytes. if greater, it sets to 64000. in the future, this limitation may be removed. . SPEED: waba is about ~7% slower. this happens because, since the source is getting bigger, i had to change the source model from small to large. the program size growed up 10kb and it became 7.1% slower. maybe in codewarrior 6 (i'm still using the lite version) this may be fixed. . corrected formatDouble. it was converting 9.09 or 9.009 to 9.9. . Known bugs: . sometimes when the popup keyboard closed, the control loses focus. you have to move the focus to another control to see the cursor back. Only happens in VPFinance (?) . doing a Sound.beep and a Vm.sleep one after the other sometimes the beep is delayed. but it rings. . the first click in the window may delay a little. i dont know why, but the Calendar and Keyboard classes only get constructed after this event happens. . PLEASE GIVE ME FEEDBACK!