A new version of Widgetry is available on the Cincom Public Repository: Version 0.4 : 30062 tests.
What's new.
Part 1 of what turns out to be two parts of Grid Optimization. With the new code, adding a column is on average 3.5x faster.
It is mostly because of a big refactoring removing a double creation of each pane in the Grid. With the old code, and for a while there, it also created a whole bunch of garbage as the needless first set of panes weren't released. Since the "first set" of tossed aside panes are no longer created, that leak is gone.
This also will speed up scrolling, but that varies, based on the number of newly visible rows.
Martin has updated tests to run better on different platforms and/or images with different stuff loaded.
Kevin added a missing reference to the secondaryTransitionImage for an ActiveImageSpecification, and I added tests and the appropriate builder support for it.
Finally, there are more comment updates from Kevin.
Also, there were the following Stop The Line fixes:
- Empty TextEdit wasn't showing insertion point.
- If both vertical and horizontal scrollbars were shown, an EnumerationPane would become "dead" to selections
- ResizingSplitter not properly calculating minimal invalidation area
- ResizingSplitter not working properly when imbedded in a Form
- New API in advance of Fly By Help for DisplayLabel>>extentWhenWordWrappedTo: anInteger gives extent of text when wrapped to anInteger's width (plus tests)
- Fixed EnumerationArtist itemGlobalBoundsAt: to give proper bounds (for use with coming Fly By Help)
- Added removePage: anIntegerOrSymbol to TabControl (plus tests)
- Added a Grid invalidate to make sure it paints the background if there are no items in the list
- Made sure helpText from ToolItems were added to ToolItemPanes (plus tests)
- Added tests to make sure helpText from MenuItems are added to MenuPaneItems
- Used CodeCritic to remove dead code
- Made sure that inactive color was used on inactive ActiveImages
- Fixed paneAt: to find deep panes when using an array of IDs (plus tests)
- Added columnAtID: for Grid (already was in Agent)
- Added removeColumnIndex: for Grid (already was in Agent)
- Refactored InputField only methods from EditingPane
- Fixed TextDisplayManager to not die on empty text
- Fixed name targetSelectionRectange... to targetSelectionRectangle...
What's next.
Progress is being made on making beEnabled be as fast as it is in Wrapper... I suspect it will be done for 0.5, but time will tell.
Part two of Grid Optimization to stop it from in effect displaying 3 times for every change.
And So It GoesSames