XTREE enhancement: a new field, XTR'LEFTINDEX, has been added to the XTRCTL parameter to allow the application to control the horizontal scroll position on entering the tree. The field is mapped at the end of XTRCTL, taking one byte out of the FILL, as indicated here for edit [133]:
map2 XTR'CTLID,B,2 ! [132] A-Shell ctl #
map2 XTR'LEFTINDEX,B,1 ! [133] Left-most visible column
map2 XTR'UNUSED2,X,14 ! [133] was 15
! (total size = 128)
The updated XTREE.MAP and XTREE.SDF files are available via the SOSLIB repository, although you can update your own manually based on the above excerpt.
The field acts analogously to XTR'TOPINDEX, substituting the left-most visible column for the top-most visible row. When set by the application, XTREE will attempt to set the horizontal scroll so that the specified column (first column = 1) is visible at the left edge of the display window. This however will be overridden if necessary to make the target column (XTR'TARGCOL) visible, or if it is simply impossible to accommodate.
As with XTR'TOPINDEX, if the XTR'LEFTINDEX field is non-zero on entrance, it will be updated on exit to indicate the left-most column that is partially or wholly visible on exiting the tree. Since the field resolution doesn't support fractional columns, this may result in a partial-column shift when exiting and re-entering. You can avoid that by either setting the field back to zero, or specifying the XTF_NOREDRAW flag.