Version History

7.5:

  • Added Hi-DPI support for Windows systems. (Note: known issue currently is that Xojo's rounding causes row line artifact when on uneven DPI)

    7.1:

  • Added compatibility for changes in Xojo 2016r4.

    7.0:

  • OS X Cocoa has now new a nicer headers when showing headers that don’t have the old OS X Theme renderer 16 pixel limitation.
  • Removed the TreeViewExtensions external module and added its methods into the TreeView.
  • Added ExpandAll method to the TreeView control (was previously offered in the TreeViewExtensions)
  • Added IndexFromNode functions (2 variations) to the TreeView control. (was previously offered in the TreeViewExtensions)
  • Added ExpandAncestorsOf method to the TreeView control.
  • Added SelectNode function to the TreeView control that can select a node by a Node instead of a index.
  • Fixed countless many draw glitches in OS X Cocoa mode.
  • HighResImage property on the TreeViewNode class is now ignored if detecting Image set on the Image property.
  • ColumnHeaderHighResImage property on the TreeView class is now ignored if detecting Image set on the ColumnHeaderImage property.
  • Did many retina improvements.
  • New toolbar icons for the Xojo 2016 IDE in retina mode.
  • Fixed IDE strange ghosting issue in design mode when having headers turned on.
  • 6.5.2:

  • Fixed bug [0000014]: DrawBackground event does not work correctly on CustomNodes on MacOS X.

    6.5:

  • Added 64 bit compile support for Mac target.
  • Added 64 bit compile support for Windows target.
  • Added 64 bit compile support for Linux target.
  • Added ARM compile support for Linux target.
  • Added another variation of the RemoveNode method.

    6.3:

  • Did OS X Yosemite tweak where the TreeView was leaving a warning in the OS X console.
  • Changed compilers on Windows.
  • Cleaned out a lot of obsolete code on Windows which was to support old systems such as Windows 98 and Windows 2000 which Xojo does not support.

    6.2:

  • Improved the Xojo plugin support, the previous Xojo port was from the very early days of Xojo.
  • Plugin segments come code signed on MacOS X systems.
  • Plugin now ships with CoreClasses 6.0 and has been optimized for some faster data access that 6.0 offers internally.
  • Documentation now also ships as docset for the awesome Dash viewer from http://kapeli.com/dash.

    6.1:

  • Now also ships with a Xojo plugin. The Xojo plugin comes in the new Xojo format and is compiled with newer SDK, and includes Cocoa design time mode.

    6.0.2:

  • Changed Linking so that the TreeView could work with modern Linux distros like Ubuntu 12.04 for example when used with Real Studio 2012 or later.

    6.0.1

  • Fixed a issue that caused the Index and IndexOf functions to be missing on the TreeViewNode class in the 6.0 version.

    6.0:

  • Added full support for high resolution Retina displays in Cocoa.
  • Added HighResImage property to the TreeViewNode class to support retina mode.
  • Added ColumnHeaderHighResImage getter / setter methods to the TreeView to support retina mode.
  • Added two new constructors to the TreeViewNode class that additionally to the exiting parameters takes the Retina high resolution image.
  • Added three new constructors to the TreeViewCheckboxNode class that additionally to the exiting parameters takes the Retina high resolution image.
  • Added new constructor to the TreeViewCustomNode class that additionally to the exiting parameters takes the Retina high resolution image.
  • Fixed issues with scrollbar (all platforms)
  • Fixed Windows cross compile issues in open event when compiling from Mac to Windows.

    5.2.2:

  • Fixed crash issue with node drag on Real Studio 2012r1 that was due to removal of entry point in the 2012 version.

    5.2.1:

  • Fixed a crash that was introduced in 5.2 where the control would crash if the user had nothing in its open event.

    5.2:

  • Fixed issues with TreeLines on Mac Carbon and Cocoa targets.
  • Changed the linking on Linux systems to enable the control to work correctly on the new REAL Studio 2012r1*. (* See known issues note)
  • Did some more Cocoa tweaks and fixes.
  • Fixed large number of linux issues and glitches, most of them were due to REALbasic's switch to Cairo drawing.

    5.1.6:

  • Fixed a issue where Cocoa native drawing colors were not syncing with parts of the TreeView that were REALbasic drawn.
  • Fixed issue on Cocoa where scrollbar would not hide when there was nothing to scroll.

    5.1.4:

  • Fixed a issue on Cocoa where Scrollbar was sometimes visible even if there were not nodes to fill all the screen.

    5.1.2:

  • Fixed incorrect functionality of InsertNode on the TreeViewNode class when a node was expanded.

    5.1.1:

  • Fixed a Text rendering issue that was introduced in 5.1 when used with REALbasic older than 2010r4

    5.1:

  • Added a InsertNode method on the TreeViewNode class.
  • Changed entry point loading to support REALbasic 2010r5 and later.

    5.0:

  • Added Cocoa compile support (REALbasic 2010r3.1 or later needed for using Cocoa)

    4.5:

  • Added a IndexOf function on the TreeViewNode class.
  • Fixed a tiny memory leak on MacOS systems.
  • Some operations of the TreeView are now faster since its now linking to the upgraded CoreClasses plugin that offers new ways to speed things.

    4.4.2:

  • Setting the HasBorder property to false now recalculates all areas of the control to make use of the unused border space for other parts.

    4.4:

  • Added a columnIndex parameter to the NodeMouseDown event.
  • Added a columnIndex parameter to the NodeDoubleClick event.
  • Added HasBorder property (note you need to click true on your existing projects in the designer since REALbasic does not know how to set default value on projects created before new property was added).
  • Added a EnableMenuItems event.
  • 4.3:

  • Added a TextUnit property for next generation of REALbasic.
  • Fixed font issues affecting next generation of REALbasic.
  • Changed the TextSize to be Single type instead of Integer to support next generation of REALbasic.

    4.2:

  • Added a ColumnHeaderImage setter / getter.
  • Added a ColumnHeaderImageAlignment setter / getter.
  • Column Header text is now clipped properly.
  • Text in extra columns is now better in sync with the headers.
  • Page Up and Page down are not handled internally by the control.
  • Fixed a Linux and Windows 2000 header draw glitch.
  • Plugin is now linked against and dependent on libstdc++6 instead of libstdc++5 on Linux systems.

    4.1:

  • Changed the constructors and did other internal changes to support future REALbasic versions.

    4.0:

  • Added a TreeViewCustomNode class that enables users to make custom rendered nodes. (This feature will only work on REALbasic 2007r3 and later)
  • Added a example project to demonstrate the custom node class.

    3.6:

  • Added a DragReceiveBehavior property which allows to let all nodes become possible drop zones in addition to the existing mode where only directories can be drop zones.
  • The Universal Binary is now compiled as Bundle instead of dylib to support the new mechanism in REALbasic to load Mach-O plugins directly into memory.
  • Fixed a problem with Column header text where when having many columns the text got misplaced by few pixels.
  • Improved the Linux portion of the control to get it to draw properly on recent versions of Suse Linux systems.

    3.5.5:

  • Improved look and feel on Linux systems.
  • Added support for node images that are wider than 255 pixels.
  • Improved the documentation for the TreeViewCheckboxNode class.

    3.5.1:

  • Fixed a problem where the DragExit event was missing in the 3.5 build.

    3.5:

  • Added a TreeViewCheckboxNode class that adds support for three state Checkbox nodes where each node can also be enabled or disabled.
  • Added a NodeAction event to the TreeView control, where action events for special nodes such as the Checkbox nodes will fire.
  • Added a new part constant to the TreeViewParts module. (NodeCheckbox area)
  • Added a new example project to demonstrate use of Checkbox nodes.

    3.1:

  • Fixed a draw glitch in built in Quartz Acceleration module.
  • Added a Swap method to the TreeViewNode class to swap child nodes.
  • Added a Swap method to the TreeView control class to swap root level nodes.
  • Added a Index function to the TreeViewNode class to lookup the screen index for the given node.
  • All remove functions will now detach nodes so they are reusable for insertion again.
  • Remove functions will no longer collapse them self's before getting removed, making them preserve expanded state if they get re-attached.
  • Added a HorizontalScrollbarValue property (not officially supported in this version).

    3.0:

  • Added support for MacOS X Universal Build.
  • Fixed a Drag & Drop issue relating to use of late REALbasic 2006 versions.
  • Fixed a tree line rendering glitch.

    2.6.2:

  • Fixed various of problems related to setting the Enabled property to false.
  • Windows segments are now compiled with a different compiler to support future roadmap and long term goals for the plugin.

    2.6:

  • Accelerated the rendering engine - all platforms will benefit from this.
  • The node rendering proc now uses exclusive Quartz when running on MacOS X Mach-O targets.
  • Added a QuartzShading property to optionally shade the selection when running on MacOS X Mach-O target.

    2.5:

  • The NodeHeight property is now both Read and Write.
  • Added a extra parameter to the DragOverNode event. (REALbasic 2006 and later only)
  • Added a extra parameter to the DropObject event. (REALbasic 2006 and later only)
  • Added a BeginDragNode event. (REALbasic 2006 and later only)
  • Added a part code parameter to the DragOver event. (REALbasic 2006 and later only)
  • Improved the visual feedback of drag over handling.
  • The Tree-Line rendering algorithm is now faster.
  • Added a isRightButton parameter to the MouseDown event.
  • Headers no longer get clicked when the mouse click is right click.
  • The right click is no longer marked as handled by the TreeView which should let REALbasic properly fire the new REALbasic ContextMenu events.
  • Right clicks are no longer counted in DoubleClick evaluations.

    2.3:

  • Added support for live Drag Tracking when used with REALbasic 2006 or later.
  • Added a DragOver event. (Only visible in REALbasic 2006 and later)
  • Added a DragOverNode event. (Only visible in REALbasic 2006 and later)

    2.2:

  • Added a SelectionSeparator property.
  • Fixed a problem with using the TreeView control on Windows 2003 Server.

    2.1:

  • Added a RemoveChildAt method to the TreeViewNode class.
  • Added a RemoveChild method to the TreeViewNode class.
  • Added another variation of the constructor for the TreeViewNode class that additionally takes hasExpander parameter.
  • Setting the SelectedIndex property to -1 will now clear all selection in the TreeView.

    2.0.4:

  • Improved the Scrollbar Page scrolling.

    2.0.2:

  • Fixed a problem where the scroll wheel was in some cases crashing Mach-O Applications.
  • Added support for users of the plugin to decide on if using more optimized GCC 4.0 Mach-O segment or a more backward compatible GCC 3.3 Mach-O segment. (Can be configured by using Plugin Tool 2.5 or later).

    2.0:

  • Added support for the REALbasic Linux IDE.
  • Ported the Mach-O target to use Xcode to prepare for upcommig Mac Intel targets.
  • The Mach-O target is now 15% smaller.

    1.9:

  • Added suppport for next generation of REALbasic. (Linux IDE in next generation of REALbasic is not yet supported).

    1.8:

  • Added a UseFocusRing property.
  • Added a MouseUp event.
  • Added a MouseDrag event.
  • Connected the CancelEventAction property to the MouseUp event.
  • Connected the CancelEventAction property to the MouseDrag event.
  • Improved the documentation.

    1.7.3:

  • Fixed a memory leak in the RemoveNode method.

    1.7.2:

  • Fixed a memory leak where the control was leaking one Graphics object per refresh cycle.

    1.7:

  • Added support for Even / Odd colored nodes.
  • Added a NodeEvenColor property.
  • Added a NodeOddColor property.
  • Added a NodeExpandIndent constant for use with the GetMeasure function.
  • MouseWheel events are now ignored if the scrollbar is not currently visible. Before this sometimes caused the MouseWheel to try to push the content up by one pixel.
  • Fixed a problem with mouse hovering effect on the Linux triangle expanders.

    1.6.2:

  • The ScrollNodeToView method is now supported in the Open event of the control.
  • The VerticalScrollbarMax property is now supported in the Open event of the control.
  • The VerticalScrollbarMax property is now supported in the Open event of the control.
  • The VerticalScrollbarValue property is now supported in the Open event of the control.
  • The ContentAreaHeight and ContentAreaWidth constants now work in the Open event of the control.

    1.6:

  • Added a ScrollNodeToView method.
  • Added a VerticalScrollbarMax read only property.
  • Added a VerticalScrollbarValue read and write property.
  • Added a GetMeasures function.
  • Added a TreeViewMeasure constant module which has HeaderHeight, ContentAreaHeight, ContentAreaWidth, NodeHeight.
  • The old NodeHeight property is now depreciated but still supported.
  • Added some open source TreeView extension methods.

    1.5.2:

  • The setter for the ColumnHeaderText property now correctly refreshes the header.
  • The setter for the ColumnWidth property now correctly refreshes the header.
  • The control now gracefully stops redrawing it self instead of crashing when it is scaled to be smaller than the scrollbar.
  • Added a Example project from Nick Loveday.

    1.5:

  • Added Column Header support.
  • Added HeaderClick event.
  • Added HasHeader property.
  • Added ColumnHeaderText setter/getter method.
  • Added a Header constant in the TreeViewParts module for hit testing.
  • Redesigned the plus minus expanders when not using disclosure triangles in MacOS, MacOS X, Linux or Windows (older than Windows XP) mode.
  • Added a InsertNode method to insert a child node at a specific location.
  • Added a InsertNode method to insert a top level node at a specific location.
  • Fixed a critical memory fault error with the multiple columns mechanism.

    1.2.2:

  • Fixed a drawing problem when the control gets resized.

    1.2:

  • Added preliminary support for multiple columns.
  • Added a AddSubItem method to the TreeViewNode class.
  • Added a ItemText setter/getter function to the TreeViewNode class.
  • Added a ColumnCount property to the TreeView control.
  • Added a ColumnWidth setter/getter function to the TreeView control.

    1.1.2:

  • Added a SelectedNode function.
  • Added a Selected function to the TreeViewNode class.
  • Added a Depth function to the TreeViewNode class.
  • The text on the node now vertically aligns it self properly in line with the expanders after changing font or font size.
  • Added a KeyDown event and Connected the CancelEventAction property to it.
  • Added a nice example project from Bradford J Herder.

    1.1:

  • Added a TextFont property.
  • Added a TextSize property.
  • Added a GotFocus event.
  • Added a LostFocus event.
  • Added a Expanded function to the TreeViewNode class.
  • Added a FontItalic property to the TreeViewNode class.
  • Fixed a crash when the control was resized to a negative size.
  • Accelerated rendering of the control, this is most notable on MacOS X.
  • Setting the SelectedIndex property will now trigger redraw when the drawing is not locked.
  • The BeforeNodeExpand will now temporarily lock the drawing during the events execution.
  • The BeforeNodeCollapse will now temporarily lock the drawing during the events execution.
  • Fixed a bug with synchronization between expanding state and selection state.
  • Changed selection events so they attempt to redraw the control when possible before sending the event instead of doing it after it.
  • Using BeforeNodeExpand for loading when expanding now actually works.
  • Added two new example projects.
  • 1.0:

  • This is the first version.