These new character search mode options are set via a new field in the XTRCTL structure (XTR'SEARCHMODE):
xtr'targetcol |
B,1 |
|
xtr'nfselstyle |
B,1 |
|
xtr'searchmode |
B,1 |
|
The options are defined as follows (in ASHINC:XTREE.DEF)
Symbol |
Value |
Description |
---|---|---|
XTRSRCH_TOP_ALL |
0 |
(dflt) all chars, items, from top |
XTRSRCH_TOP_ONE |
1 |
one char, all items, from top |
XTRSRCH_NONE |
2 |
no search |
XTRSRCH_TOP_ALLX |
3 |
like TOP_ALL but skip collapsed deps |
XTRSRCH_TOP_ONEX |
4 |
like TOP_ONE but " " |
XTRSRCH_NXT_ONE |
5 |
like TOP_ONE but start from current item and wrap |
XTRSRCH_NXT_ONEX |
6 |
like TOP_ONEX but " " " |
XTRSRCH_NXT_ALL |
7 |
like TOP_ALL but start from current item |
XTRSRCH_NXT_ALLX |
8 |
like NXT_ALL but skip collapsed deps |
Previously, mode 0 (XTRSRCH_TOP_ALL) was always set. The options can be understood as follows:
• | "_TOP" vs. "_NXT": Indicates whether the search operation always restarts from the top, or from the current item. In the latter case, it wraps from the bottom back to the top. |
• | "_ALL" vs. "_ONE": Indicates whether the search is based on all the characters in the cells of the current column, or just the one first character. In the _ALL case, characters typed within 1 second of the previous character are added to the search key; after 1 second, the key is reset. So for example if you type "AB" within 1 second of each other, it will search for items starting with the combination "AB" (not case sensitive). If more than 1 second passed between the "A" and the "B", it restarts the search looking for items beginning with "B". The "_ONE" option effectively sets the timer to zero, so that each character typed restarts the search. |
• | "X" (_ALLX, _ONEX): The "X" on the end indicates that collapsed child items are skipped. Otherwise, the search considers all items, and if it matches a collapsed child item, that child and all its siblings and parents are expanded. |