- Fixed various issues with COM objects.
- Mac: Fixed a Japanese text input problem.
- Mac: Fixed a SQLite problem on Intel-based Macs.
- Fixed getDirectoryContents when passed “C:\\”.
- Fixed Drag and Drop events in Textareas.
- Fixed problem where opacity on frames wasn't being obeyed properly.
- Fixed issue with debug window never showing file/line number info. Also pulled in change to debug window to avoid having to use print() to see values.
- Fixed problem with duplicate widgets when consolidating. This would manifest itself as the apparent duplication of Widgets if you kept downloading and running the same Widget over and over (or an update to a Widget not gotten via the built-in update mechanism).
- Fixed truncation of Japanese characters in prefs.
- Fixed 'with' with COM objects.
- Fixed problem where we weren't always properly releasing COM objects.
- Fixed last remaining positioning issue wrt context menus when windows have shadows.
- Mac: Fixed reloadWidget() bug.
- Mac: Fixed font styling problem on Panther.
- Mac: Fixed Japanese font rendering issues in textareas.
- Fixed appendChild in submenus.
- Fixed sound truncation and allow empty path again.
- Fixed problems with effective window opacity.
- Fixed problems with window positions and popup menu positions when a window has a shadow.
- Fixed "close widget" applescript bug.
- Fixed "open widget" applescript bug.
- Fixed saveImageToFile when using jpeg.
- Fixed | operator in XPath.
- Fixed problem (again) where widgets don't restart automatically when restarting your computer.
- Fixed issues verifying certificates.
- Fixed exception caused from calling reloadWidget inside onLoad.
- Fixed Recent Menu clearing synchronization between gear and dock menus.
- Fixed Context Menus not showing up when in HUD.
- Fixed wireless reporting on Vista.
- Allow hot key to be set to none correctly.
- Fixed issue with rotation and transparency.
- Fixed problem where launching a Widget hidden made it stay hidden forever.
- Tell all Widgets when proxy settings are changed.
- Fixed problems where we weren't detecting session end and were mistakenly marking widgets as not running.
- Fixed problem where we weren't putting windows back into the right layer when exiting HUD.
- Fixed issues where we weren't putting widgets back into place when switching screen configs.
- Obey application/xml and +xml types when accessing responseXML from XMLHttpRequest.
- Fixed bug where onKeyDown/Up onMouseDown/Up onMouseEnter/Exit elements specified in XML for a window were not sticking.
- Fixed proxy connections.
- Allow manual proxy field to be freeform.
- Implemented image sharing to attempt to reduce memory consumption for some Widgets.
- When a Window is hidden, we now release all the drawing buffers. Not a huge savings in most cases, but hey.
- XPath is now substantially faster on large XML DOMs.
- We now load Win HTTP on-demand.
- Rewrote COM support to be faster and fixed some issues with event sinks.
- Implemented Resize Animation.
- It is now possible to reuse an animation. Previously, once an animation was complete, it was useless.
- Changed animations to always call any 'done' function you pass in even if the animation is run with runUntilDone (i.e. synchronously). This only takes effect if your minimumVersion is 4.0 or later.
- Added filesystem.zip() and filesystem.unzip() as simple utilities to do basic zip/unzip actions.
- Filesystem.move() now will rename a file (i.e. it should now behave exactly like the unix mv command).
- Added filesystem.getMD5() to return the MD5 string for a given file.
- Added optional third parameter to filesystem.writeFile. You can now pass a boolean to tell us whether or not to append to the file instead of merely overwriting the entire file. appendFile( path, content [, append] );
- Added filesystem.createDirectory() and filesystem.remove().
- Canvas object. Use 2D drawing primitives to draw whatever you like.
- Added convertPointToWindow, convertPointFromWindow, convertPointToParent and convertPointFromParent to successfully deal with translating points into different coordinate systems. This is especially necessary when you have multiple nested, scrolled, rotated frames. Each function can either take an x, y coordinate or a Point object, which is also new in this build. These routines all return Point objects as well. A Point only has two properties, x and y.
- You can now set the height/width to null to reset an object to use the natural size of the content, if any.
- Changed z-order handling. When minimumVersion is set to 4.0 or later, the new behavior is as follows: as views are created, they are all given a zorder of 0 (instead of the previous ever-increasing z-order number). Views are ordered within z-order in the order they were added (the last view will get the highest effective z-order). To change the z-ordering with a particular z-order, you use orderAbove and orderBelow. This much is the same as it was after the first time this was changed for this release. The new twist is that we still pay attention to the zOrder of a view. Views with zOrder set to 1 will always be layered on top of views with zOrder 0. This allows older Widget definitions to still behave the same as they ever did. orderAbove() and orderBelow() still can be used to shuffle views around but they cannot be shuffled between zOrders. So if you have 10 views with zOrder 0, then 5 views with zOrder 1. If you take the top most view in zOrder 1 and call orderBelow(null), it will not put the view to the rear of all views, but rather to the rear of all views with zOrder 1. So effectively, zOrder can now be interpreted as a 'layer'. And orderAbove and orderBelow only operate within layers. This gives us the best of both worlds, and allows things to be done in ways they never could before.
- Enabled rotation for text, canvas, scroll bar, and frame objects. Text areas cannot be rotated on either platform. Don't even get any funny ideas and try to put it in a frame and then rotate the frame... the result will be the same: badness.
- Fixed issue where setting image.colorize to "" was setting it to black instead of clearing the colorization, as setting to null would. Did the same thing for HSLAdjustment and clipRect.
- If minimumVersion is set to 4.0, onMouseMove changes its meaning to track mouse motion while the mouse is up. To get mouse motion events when the mouse button is down, use onMouseDrag.
- Menu items can now have submenus. In XML, you just put another menuItem element inside another. In JS, you use appendChild/removeChild to add or remove child menu items. This affects contextMenus and popup menus.
- Fixed crash trying to set a Frame's scroll bars to null.
- Added new anchorStyle property to text objects. This allows you to tell the engine to base its hOffset at the baseline of the text (the historical default) or the top-left of the text box that surrounds the text. In future builds, vAlign will work with text items when the topLeft anchor mode is used.
- Fixed problem in scroll bars that caused horizontal scroll bars to not respond to clicks properly.
- Implemented onClick in text, textArea, image, frame, scrollBar, and canvas objects.
- Scroll bars now have the full complement of mouse events available to it. Typically you'd never use them, but they are there for completeness.
- If minimumVersion is set to 3.0 or greater (triggering our change for our JS object lifetime), we now add the following properties to objects in a window to create a more DOM-like environment: firstChild, lastChild, nextSibling, previousSibling, and parentNode. If you wish to walk the tree of objects in a window, this is the fastest way to do it. Using the previous 'subviews' method is very slow if you are making changes to the subview list as you are adding items. We used to build this array all the time, and it caused some bad slowdowns. We now only build the subview array on demand. As a result, adding hundreds or thousands of views is now significantly faster (at least an order of magnitude). Along with these changes, to keep things as DOM-tastic as possible, the window object also has firstChild and lastChild. firstChild will point to the first child of the 'root' view. Likewise, any object inside the root view will yield a parentNode of the window, not the root. Superview still returns the true superview (the root). In other words, when using the DOM access, the root node effectively does not exist.
- getElementById has been added to the widget object. This means that you can now add a mutable 'id' property to windows, frames, scrollBars, text object, textArea objects, image object, canvas objects, timer objects, and hotKey objects and look them up later. You don't need to use the 'name' property at all now (though it's certainly still useful).
- Action triggers are now attached to the Widget object directly. So an onUnload action can be accessed via widget.onUnload. This also means you can set these triggers at runtime as well now... something you could never do before.
- Option/OptionValue arrays in preferences can now be adjusted at runtime and the engine will see the changes. You don't have to reset the property with a new array any longer.
- Implemented appendChild and removeChild DOM APIs on windows and views (image, text, etc.). They throw DOM exceptions as specified by the DOM specification per W3C. Consult the Level 1 or 2 DOM spec on their site for more information.
- You can now change the context menu array of an object on the fly, i.e. it is no longer necessary to set the entire array to see a change. Just remove or add an item, etc. and the change will be reflected in the menu.
- Added keyCode, charCode, shiftKey, ctrlKey and altKey to system.event. These match the definitions in something like Firefox. They are much improved over the older key handling mechanism, and should behave properly on both platforms (as you'd expect).
- Improved DOCTYPE parsing in XML parser.
- Added SQLite support.
- Created a web-based version of our documentation
- Reloading a Widget no longer kills and respawns the process. It merely shuts the Widget down and restarts it.
- Behavior change: when a widget is opened, if it is already running it is simply shown. We no longer do a reload in this situation.
- Changed Windows slider behavior in preferences to match the Mac. They now snap to the tick marks.
- Fixed a crash in the debug window on Windows when using the arrow keys to switch between previous commands. If you went 'past' the end of the list and then back, you'd get a crash.
- We now allow paths to start with ./ in flattened Widgets when loading files, etc.
- Updated Converter Widget.