Ran Eilam

Changes for version 0.06

  • you can no longer create nodes using $node->Label syntax- this will BREAK all code using this syntax. Change it to: $node->add_child(Label). Cannot support both methods, so one had to go
  • updated to support Firefox 2.0
  • moved all javascript to mootools style classes (http://dev.mootools.net/wiki/gettingStarted)
  • started using JSAN for remote javascript classloading (http://www.openjsan.org/doc/c/cw/cwest/JSAN/0.10/index.html)
  • started using FireBug for javascript unit tests, which will not run without it (http://www.getfirebug.com/)
  • fixed spelling error with ToolBarSeperator tag name (thanks to Rutger Vos)
  • subclassing XUL::Node- create your own Perl XUL widgets, from base XUL elements. See CustomWidgetsExample, CustomNodeTest, CustomCompositeNodeTest, and and the custom_composite_widget_state test method in the ChangeManager tests. Undocumented yet.
  • started MVC work- see MVCTextBoxExample, MultipleViewsExample, and Model::Value/MVC unit tests. Undocumented yet. API WILL change.
  • node uses Aspect::Library::Listenable for event handling, so you can add more than one listener to a node- used to be you could only add one
  • added get_parent_node to XUL::Node, using weak refs to avoid cycles- now you can navigate from a node to any other node in the window
  • fixed bug in Runner.js- value attribute should be set as late as possible. You can now set the value in a TextBox, even after someone changed its value by typing inside it. Hack to get around a known mozilla bug (https://bugzilla.mozilla.org/show_bug.cgi?id=108482)
  • added check in ChangeManager- dont pass to client any changes to the XUL document that are already at the client
  • refactoring: cleaned up exporting logic in XUL::Node
  • refactoring: arranged classes more sensibly, instead of having them all squatting in the same dir
  • use latest Aspect module
  • documentation errors fixed