New Features
SftTree/DLL 8.0 is virtually 100% upward compatible from version 7.5 and earlier versions. The following major enhancements have been made available with SftTree/DLL 8.0:
- New built-in UI Automation provider exposes tree structure, column and row headers, selection and expand / collapse state to Narrator, NVDA, JAWS and other screen readers. Split tree controls appear as a single unified data grid to assistive technologies. No caller opt-in is required.
- New Announce function pushes short application-status text ("3 rows added", "Filter cleared", "Saved") to attached screen readers through a UI Automation notification event.
- New dark mode support with AUTO / ON / OFF setting (see SetDarkMode). The AUTO setting tracks the Windows "Choose your mode" accessibility setting.
- New Windows High Contrast accessibility support with AUTO / ON / OFF setting (see SetHighContrastMode). The AUTO setting tracks the Windows High Contrast setting.
- New Per-Monitor DPI v2 awareness. Row height, , scroll-bar metrics, drag thresholds, 3D frames, the column drop-down button, the resize handle and the control-owned expand / collapse glyphs scale automatically with the current monitor DPI. See GetDPI and the new SFTTREEN_DPI_CHANGED notification.
- New SetImageScaling function provides a one-call opt-in to automatic DPI scaling of every image the control draws - caller-supplied / label / item / row-header / column-header / column-footer pictures, plus / minus bitmaps and user-supplied tree button bitmaps, as well as control-owned glyphs.
- New SetPixelScaling function provides a one-call opt-in to treating caller-supplied pixel dimensions (column widths, indentation, row-header width, horizontal extent, item heights, splitter offset) as 96-DPI reference values. Stored values stay in 96-DPI units so serialized configurations remain portable across monitors of different DPI.
- New SetSplitterOffsetMin function sets a minimum splitter bar offset for split tree controls, preventing the user from hiding the left pane.
- New SetSizeBox function controls whether a size box is shown in the tree control's lower-right corner, allowing the user to resize the control by dragging the corner grip. The companion GetSizeBoxActive function reports whether the user is currently dragging the size box, so the host can suspend layout updates during interactive resizing.
- New SFTTREEN_DARKMODE_CHANGED notification is sent when the active dark mode state flips.
- New SFTTREEN_HIGHCONTRAST_CHANGED notification is sent when the Windows High Contrast accessibility state flips.
- New SFTTREEN_DPI_CHANGED notification is sent to Per-Monitor v2 DPI-aware hosts when the control's monitor DPI changes.
- The SFTTREE_OWNERDRAW structure exposes the current dark mode state (fDarkMode), current effective DPI (dpi) and current high contrast state (fHighContrast) on every owner-draw callback.