home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 19 / AACD19.BIN / AACD / Programming / MCC_NListtree / Developer / AutoDocs / MCC_NListtree.doc < prev    next >
Encoding:
Text File  |  2001-02-24  |  68.1 KB  |  2,763 lines

  1. TABLE OF CONTENTS
  2.  
  3. NListtree.mcc/--background--
  4. NListtree.mcc/MUIA_NListtree_Active
  5. NListtree.mcc/MUIA_NListtree_ActiveList
  6. NListtree.mcc/MUIA_NListtree_AutoVisible
  7. NListtree.mcc/MUIA_NListtree_CloseHook
  8. NListtree.mcc/MUIA_NListtree_CompareHook
  9. NListtree.mcc/MUIA_NListtree_ConstructHook
  10. NListtree.mcc/MUIA_NListtree_CopyToClipHook
  11. NListtree.mcc/MUIA_NListtree_DestructHook
  12. NListtree.mcc/MUIA_NListtree_DisplayHook
  13. NListtree.mcc/MUIA_NListtree_DoubleClick
  14. NListtree.mcc/MUIA_NListtree_DragDropSort
  15. NListtree.mcc/MUIA_NListtree_DropTarget
  16. NListtree.mcc/MUIA_NListtree_DropTargetPos
  17. NListtree.mcc/MUIA_NListtree_DropType
  18. NListtree.mcc/MUIA_NListtree_DupNodeName
  19. NListtree.mcc/MUIA_NListtree_EmptyNodes
  20. NListtree.mcc/MUIA_NListtree_FindNameHook
  21. NListtree.mcc/MUIA_NListtree_FindUserDataHook
  22. NListtree.mcc/MUIA_NListtree_Format
  23. NListtree.mcc/MUIA_NListtree_MultiSelect
  24. NListtree.mcc/MUIA_NListtree_MultiTestHook
  25. NListtree.mcc/MUIA_NListtree_OpenHook
  26. NListtree.mcc/MUIA_NListtree_Quiet
  27. NListtree.mcc/MUIA_NListtree_ShowTree
  28. NListtree.mcc/MUIA_NListtree_Title
  29. NListtree.mcc/MUIA_NListtree_TreeColumn
  30. NListtree.mcc/MUIM_NListtree_Active
  31. NListtree.mcc/MUIM_NListtree_Clear
  32. NListtree.mcc/MUIM_NListtree_Close
  33. NListtree.mcc/MUIM_NListtree_Copy
  34. NListtree.mcc/MUIM_NListtree_CopyToClip
  35. NListtree.mcc/MUIM_NListtree_DoubleClick
  36. NListtree.mcc/MUIM_NListtree_Exchange
  37. NListtree.mcc/MUIM_NListtree_FindName
  38. NListtree.mcc/MUIM_NListtree_FindUserData
  39. NListtree.mcc/MUIM_NListtree_GetEntry
  40. NListtree.mcc/MUIM_NListtree_GetNr
  41. NListtree.mcc/MUIM_NListtree_Insert
  42. NListtree.mcc/MUIM_NListtree_InsertStruct
  43. NListtree.mcc/MUIM_NListtree_Move
  44. NListtree.mcc/MUIM_NListtree_MultiTest
  45. NListtree.mcc/MUIM_NListtree_NextSelected
  46. NListtree.mcc/MUIM_NListtree_Open
  47. NListtree.mcc/MUIM_NListtree_PrevSelected
  48. NListtree.mcc/MUIM_NListtree_Redraw
  49. NListtree.mcc/MUIM_NListtree_Remove
  50. NListtree.mcc/MUIM_NListtree_Rename
  51. NListtree.mcc/MUIM_NListtree_Select
  52. NListtree.mcc/MUIM_NListtree_Sort
  53. NListtree.mcc/MUIM_NListtree_TestPos
  54. NListtree.mcc/--background--                     NListtree.mcc/--background--
  55.  
  56.     There are two possible entry-types in a NListtree class list:
  57.     Leaves and nodes. Leaves are simple entries which have no special
  58.     features except they are holding some data. Nodes are almost
  59.     the same type, holding data too, but having a list attached
  60.     where you can simply add other entries which can be again leaves
  61.     or nodes.
  62.  
  63.     Every node is structured as follows:
  64.  
  65.         struct MUI_NListtree_TreeNode {
  66.  
  67.             struct    MinNode    tn_Node;
  68.             STRPTR    tn_Name;
  69.             UWORD    tn_Flags;
  70.             APTR    tn_User;
  71.         };
  72.  
  73.     It contains a name field tn_Name, flags tn_Flags and a pointer to
  74.     user data tn_User.
  75.  
  76.     The tn_Flags field can hold the following flags:
  77.  
  78.         TNF_LIST        The node contains a list where other nodes
  79.                         can be inserted.
  80.  
  81.         TNF_OPEN        The list node is open, sub nodes are displayed.
  82.  
  83.         TNF_FROZEN        The node doesn't react on doubleclick or
  84.                         open/close by the user.
  85.  
  86.         TNF_NOSIGN        The indicator of list nodes isn't shown.
  87.  
  88.         TNF_SELECTED    The entry is currently selected.
  89.  
  90.     These flags, except TNF_SELECTED, can be used in
  91.     MUIM_NListtree_Insert at creation time. They will be passed to
  92.     the newly created entry. Also you can do a quick check about the
  93.     state and kind of each entry. But - NEVER EVER - modify any flag
  94.     yourself or NListtree will crash. Be warned!
  95.  
  96.     *********************************************************************
  97.         THE ABOVE STRUCT IS READ-ONLY!! NEVER CHANGE ANY ENTRY OF THIS
  98.         STRUCTURE DIRECTLY NOR THINK ABOUT THE CONTENTS OF ANY PRIVATE
  99.                         FIELD OR YOU WILL DIE IN HELL!
  100.     *********************************************************************
  101.  
  102.  
  103.     You can create very complex tree structures. NListtree only uses
  104.     one list which holds all information needed and has no extra
  105.     display list like other list tree classes ;-)
  106.  
  107.     The tree nodes can be inserted and removed, sorted, moved, exchanged,
  108.     renamed  or multi  selected.  To sort you can also  drag&drop  them.
  109.     Modifications can be made in relation to the whole tree, to only one
  110.     level, to a sub-tree or to only one tree node.
  111.  
  112.     The user can control the listtree by the MUI keys, this means a node
  113.     is opened with "Right" and closed with "Left". Check your MUI prefs
  114.     for the specified keys.
  115.  
  116.     You can define which of the columns will react on double-clicking.
  117.     The node toggles its status from open or closed and vice versa.
  118.  
  119.  
  120.     Drag&Drop capabilities:
  121.  
  122.     If you set MUIA_NList_DragSortable to TRUE, the list tree will
  123.     become active for Drag&Drop. This means you can drag and drop
  124.     entries on the same list tree again. While dragging an indicator
  125.     shows where to drop.
  126.  
  127.         Drag a    Drop on        Result
  128.  
  129.         leaf    leaf        Exchange leaves.
  130.         node    leaf        Nothing happens.
  131.         entry    closed node    Move entry, the compare hook is used.
  132.         entry    open node    Move entry to defined position.
  133.  
  134.     You can not drop an entry on itself, nor can you drop an opened node on
  135.     any of its members.
  136.  
  137.     To exchange data with other objects, you have to create your own
  138.     subclass of NListtree class and react on the drag methods.
  139.  
  140.  
  141.     Author: Carsten Scholling    (c)1999-2000    email: cs@aphaso.de
  142.  
  143. NListtree.mcc/MUIA_NListtree_Active       NListtree.mcc/MUIA_NListtree_Active
  144.  
  145.    NAME    
  146.  
  147.     MUIA_NListtree_Active -- [.SG], struct MUI_NListtree_TreeNode *
  148.  
  149.  
  150.    SPECIAL VALUES
  151.  
  152.         MUIV_NListtree_Active_Off
  153.         MUIV_NListtree_Active_Parent
  154.         MUIV_NListtree_Active_First
  155.         MUIV_NListtree_Active_FirstVisible
  156.         MUIV_NListtree_Active_LastVisible
  157.  
  158.  
  159.    FUNCTION
  160.  
  161.     Setting this attribute will move the cursor to the defined tree node
  162.     if it is visible. If the node is in an opened tree the listview is
  163.     scrolling into the visible area. Setting MUIV_NListtree_Active_Off will
  164.     vanish the cursor.
  165.     
  166.     MUIV_NListtree_Active_First/FirstVisible/LastVisible are special values
  167.     for activating the lists first or the top/bottom visible entry.
  168.  
  169.     See MUIA_NListtree_AutoVisible for special activation features.
  170.  
  171.     If this attribute is read it returns the active tree node. The result
  172.     is MUIV_NListtree_Active_Off if there is no active entry.
  173.  
  174.  
  175.    NOTIFICATIONS
  176.  
  177.     You can create a notification on MUIA_NListtree_Active. The
  178.     TriggerValue is the active tree node.
  179.  
  180.  
  181.    SEE ALSO
  182.  
  183.     MUIA_NListtree_AutoVisible, MUIA_NList_First, MUIA_NList_Visible,
  184.     MUIA_NListtree_ActiveList
  185.  
  186. NListtree.mcc/MUIA_NListtree_ActiveListListtree.mcc/MUIA_NListtree_ActiveList
  187.  
  188.    NAME
  189.  
  190.     MUIA_NListtree_ActiveList -- [..G], struct MUI_NListtree_TreeNode *
  191.  
  192.  
  193.    SPECIAL VALUES
  194.  
  195.         MUIV_NListtree_ActiveList_Off
  196.  
  197.  
  198.    FUNCTION
  199.  
  200.     If this attribute is read it returns the active list node. The
  201.     active list node is always the parent of the active entry.
  202.     The result is MUIV_NListtree_ActiveList_Off if there is no
  203.     active list (when there is no active entry).
  204.  
  205.  
  206.    NOTIFICATIONS
  207.  
  208.     You can create notifications on MUIA_NListtree_ActiveList. The
  209.     TriggerValue is the active list node.
  210.  
  211.  
  212.    SEE ALSO
  213.  
  214.     MUIA_NListtree_Active
  215.  
  216. NListtree.mcc/MUIA_NListtree_AutoVisiblesttree.mcc/MUIA_NListtree_AutoVisible
  217.  
  218.    NAME
  219.  
  220.     MUIA_NListtree_AutoVisible -- [ISG], struct MUI_NListtree_TreeNode *
  221.  
  222.  
  223.    SPECIAL VALUES
  224.  
  225.         MUIV_NListtree_AutoVisible_Off
  226.         MUIV_NListtree_AutoVisible_Normal
  227.         MUIV_NListtree_AutoVisible_FirstOpen
  228.         MUIV_NListtree_AutoVisible_Expand
  229.  
  230.  
  231.    FUNCTION
  232.  
  233.     Set this to make your list automatically jump to the active
  234.     entry.
  235.  
  236.         MUIV_NListtree_AutoVisible_Off:
  237.             The display does NOT scroll the active entry into the
  238.             visible area.
  239.  
  240.         MUIV_NListtree_AutoVisible_Normal:
  241.             This will scroll the active entry into the visible area
  242.             if it is visible (entry is a member of an open node).
  243.             This is the default.
  244.  
  245.         MUIV_NListtree_AutoVisible_FirstOpen:
  246.             Nodes are not opened, but the first open parent node of
  247.             the active entry is scrolled into the visible area if the
  248.             active entry is not visible.
  249.  
  250.         MUIV_NListtree_AutoVisible_Expand:
  251.             All parent nodes are opened until the first open node is
  252.             reached and the active entry will be scrolled into the
  253.             visible area.
  254.  
  255.  
  256.    NOTIFICATIONS
  257.  
  258.  
  259.    SEE ALSO
  260.  
  261.     MUIA_NListtree_Active, MUIA_NList_AutoVisible
  262.  
  263. NListtree.mcc/MUIA_NListtree_CloseHook NListtree.mcc/MUIA_NListtree_CloseHook
  264.  
  265.    NAME    
  266.  
  267.     MUIA_NListtree_CloseHook -- [IS.], struct Hook *
  268.  
  269.  
  270.    SPECIAL VALUES
  271.  
  272.  
  273.    FUNCTION
  274.  
  275.     The close hook is called after a list node is closed, then you can
  276.     change the list.
  277.     
  278.     The close hook will be called with the hook in A0, the object in A2
  279.     and a MUIP_NListtree_CloseMessage struct in A1 (see nlisttree_mcc.h).
  280.     
  281.     To remove the hook set this to NULL.
  282.  
  283.  
  284.    NOTIFICATION
  285.  
  286.  
  287.    SEE ALSO
  288.  
  289.     MUIA_NListtree_Open, MUIA_NListtree_CloseHook
  290.  
  291.  
  292. NListtree.mcc/MUIA_NListtree_CompareHooksttree.mcc/MUIA_NListtree_CompareHook
  293.  
  294.    NAME
  295.  
  296.     MUIA_NListtree_CompareHook -- [IS.], struct Hook *
  297.  
  298.  
  299.    SPECIAL VALUES
  300.  
  301.         MUIV_NListtree_CompareHook_Head
  302.         MUIV_NListtree_CompareHook_Tail
  303.         MUIV_NListtree_CompareHook_LeavesTop
  304.         MUIV_NListtree_CompareHook_LeavesMixed
  305.         MUIV_NListtree_CompareHook_LeavesBottom
  306.  
  307.  
  308.    FUNCTION
  309.  
  310.     Set this attribute to your own hook if you want to sort the entries in
  311.     the list tree by your own way.
  312.     
  313.     When you sort your list or parts of your list via MUIM_NListtree_Sort,
  314.     using the insert method with MUIV_NListtree_Insert_Sort or dropping an
  315.     entry on a closed node, this compare hook is called.
  316.  
  317.     There are some builtin compare hooks available, called:
  318.  
  319.         MUIV_NListtree_CompareHook_Head
  320.             Any entry is inserted at head of the list.
  321.  
  322.         MUIV_NListtree_CompareHook_Tail
  323.             Any entry is inserted at tail of the list.
  324.     
  325.         MUIV_NListtree_CompareHook_LeavesTop
  326.             Leaves are inserted at top of the list, nodes at bottom. They are
  327.             alphabetically sorted.
  328.  
  329.         MUIV_NListtree_CompareHook_LeavesMixed
  330.             The entries are only alphabetically sorted.
  331.  
  332.         MUIV_NListtree_CompareHook_LeavesBottom
  333.             Leaves are inserted at bottom of the list, nodes at top. They are
  334.             alphabetically sorted. This is default.
  335.     
  336.     The hook will be called with the hook in A0, the object in A2 and
  337.     a MUIP_NListtree_CompareMessage struct in A1 (see nlisttree_mcc.h). You
  338.     should return something like:
  339.     
  340.         <0    (TreeNode1 <  TreeNode2)
  341.          0    (TreeNode1 == TreeNode2)
  342.         >0    (TreeNode1 >  TreeNode2)
  343.  
  344.  
  345.    NOTIFICATION
  346.  
  347.  
  348.    SEE ALSO
  349.  
  350.     MUIA_NListtree_Insert, MUIM_DragDrop,
  351.     MUIA_NList_CompareHook
  352.  
  353.  
  354. NListtree.mcc/MUIA_NListtree_ConstructHookee.mcc/MUIA_NListtree_ConstructHook
  355.  
  356.    NAME
  357.  
  358.     MUIA_NListtree_ConstructHook -- [IS.], struct Hook *
  359.  
  360.  
  361.    SPECIAL VALUES
  362.  
  363.         MUIV_NListtree_ConstructHook_String
  364.  
  365.         MUIV_NListtree_ConstructHook_Flag_AutoCreate
  366.             If using the KeepStructure feature in MUIM_NListtree_Move or
  367.             MUIM_NListtree_Copy, this flag will be set when calling your
  368.             construct hook. Then you can react if your hook is not simply
  369.             allocating memory.
  370.  
  371.  
  372.    FUNCTION
  373.  
  374.     The construct hook is called whenever you add an entry to your
  375.     listtree. The pointer isn't inserted directly, the construct hook is
  376.     called and its result code is added.
  377.  
  378.     When an entry shall be removed the corresponding destruct hook is
  379.     called.
  380.  
  381.     The construct hook will be called with the hook in A0, the object in
  382.     A2 and a MUIP_NListtree_ConstructMessage struct in A1 (see
  383.     nlisttree_mcc.h).
  384.     The message holds a standard kick 3.x memory pool pointer. If you want,
  385.     you can use the exec or amiga.lib functions for allocating memory
  386.     within this pool, but this is only an option.
  387.  
  388.     If the construct hook returns NULL, nothing will be added to the list.
  389.  
  390.     There is a builtin construct hook available called
  391.     MUIV_NListtree_ConstructHook_String. This expects that the field
  392.     'tn_User' in the treenode is a string pointer (STRPTR), which's
  393.     string is copied.
  394.     Of course you have to use MUIV_NListtree_DestructHook_String in
  395.     this case!
  396.  
  397.     To remove the hook set this to NULL.
  398.  
  399.     NEVER pass a NULL pointer when you have specified the internal string
  400.     construct/destruct hooks or NListtree will die!
  401.  
  402.  
  403.    NOTIFICATION
  404.  
  405.  
  406.    SEE ALSO
  407.  
  408.     MUIA_NList_ConstructHook, MUIA_NListtree_DestructHook,
  409.     MUIA_NListtree_DisplayHook
  410.  
  411.  
  412. NListtree.mcc/MUIA_NListtree_CopyToClipHook.mcc/MUIA_NListtree_CopyToClipHook
  413.  
  414.    NAME
  415.  
  416.     MUIA_NListtree_CopyToClipHook -- [IS.],
  417.  
  418.  
  419.    SPECIAL VALUES
  420.  
  421.         MUIV_NListtree_CopyToClipHook_Default
  422.  
  423.  
  424.    FUNCTION
  425.  
  426.         This thing works near like MUIA_NListtree_DisplayHook, but is
  427.         called when the NListtree object want to make a clipboard copy.
  428.  
  429.         You can return only one string pointer. If you return NULL,
  430.         nothing will be copied. If you return -1, the entry will be
  431.         handled as a normal string and the name field is used.
  432.  
  433.         The builtin hook skips all ESC sequences and adds a tab char
  434.         between columns.
  435.  
  436.  
  437.    NOTIFICATION
  438.  
  439.  
  440.    SEE ALSO
  441.  
  442.     MUIM_NListtree_CopyToClip
  443.  
  444.  
  445. NListtree.mcc/MUIA_NListtree_DestructHooktree.mcc/MUIA_NListtree_DestructHook
  446.  
  447.    NAME
  448.  
  449.     MUIA_NListtree_DestructHook -- [IS.], struct Hook *
  450.  
  451.  
  452.    SPECIAL VALUES
  453.  
  454.         MUIV_NListtree_DestructHook_String
  455.  
  456.  
  457.    FUNCTION
  458.  
  459.     Set up a destruct hook for your listtree. The destruct hook is called
  460.     whenevere you remove an entry from the listtree. Here you can free memory
  461.     which was allocated by the construct hook before.
  462.  
  463.     The destruct hook will be called with the hook in A0, the object
  464.     in A2 and a MUIP_NListtree_DestructMessage struct in A1 (see
  465.     nlisttree_mcc.h).
  466.     The message holds a standard kick 3.x memory pool pointer. You must
  467.     use this pool when you have used it inside the construct hook to
  468.     allocate pooled memory.
  469.  
  470.     There is a builtin destruct hook available called
  471.     MUIV_NListtree_DestructHook_String. This expects that the 'User' data
  472.     in the treenode is a string and you have used
  473.     MUIV_NListtree_ConstructHook_String in the construct hook!
  474.  
  475.     To remove the hook set this to NULL.
  476.  
  477.  
  478.    NOTIFICATION
  479.  
  480.  
  481.    SEE ALSO
  482.  
  483.     MUIA_NList_ConstructHook, MUIA_NListtree_ConstructHook,
  484.     MUIA_NListtree_DisplayHook
  485.  
  486.  
  487. NListtree.mcc/MUIA_NListtree_DisplayHooksttree.mcc/MUIA_NListtree_DisplayHook
  488.  
  489.    NAME
  490.  
  491.     MUIA_NListtree_DisplayHook -- [IS.],
  492.  
  493.  
  494.    SPECIAL VALUES
  495.  
  496.  
  497.    FUNCTION
  498.  
  499.     You have to supply a display hook to specify what should be shown in
  500.     the listview, otherwise only the name of the nodes is displayed.
  501.     
  502.     The display hook will be called with the hook in A0, the object in
  503.     A2 and a MUIP_NListtree_DisplayMessage struct in A1 (see nlisttree_mcc.h)
  504. .
  505.  
  506.     The structure holds a pointer to a string array containing as many
  507.     entries as your listtree may have columns. You have to fill this
  508.     array with the strings you want to display. Check out that the array
  509.     pointer of the tree column is set to NULL, if the normal name of the
  510.     node should appear.
  511.     You can set a preparse string in Preparse for the corresponding col
  512.     element. Using it you'll be able to avoid copying the string in a
  513.     buffer to add something in the beginning of the col string.
  514.  
  515.     The display hook also gets the position of the current entry as
  516.     additional parameter. It is stored in the longword preceding the col
  517.     array (don't forget it's a LONG).
  518.  
  519.     You can set the array pointer of the tree column to a string, which is
  520.     diplayed instead of the node name. You can use this to mark nodes.
  521.  
  522.     See MUIA_NList_Format for details about column handling.
  523.  
  524.     To remove the hook and use the internal default display hook set this
  525.     to NULL.
  526.  
  527.  
  528.    NOTIFICATION
  529.  
  530.  
  531.    SEE ALSO
  532.  
  533.     MUIA_NList_Format, MUIA_Text_Contents
  534.  
  535.  
  536. NListtree.mcc/MUIA_NListtree_DoubleClicksttree.mcc/MUIA_NListtree_DoubleClick
  537.  
  538.    NAME
  539.  
  540.     MUIA_NListtree_DoubleClick -- [ISG], ULONG
  541.  
  542.  
  543.    SPECIAL VALUES
  544.  
  545.         MUIV_NListtree_DoubleClick_Off
  546.         MUIV_NListtree_DoubleClick_All
  547.         MUIV_NListtree_DoubleClick_Tree
  548.         MUIV_NListtree_DoubleClick_NoTrigger
  549.  
  550.  
  551.    FUNCTION
  552.  
  553.     A doubleclick opens a node if it was closed, it is closed if the node
  554.     was open. You have to set the column which should do this.
  555.  
  556.     Normally only the column number is set here, but there are special
  557.     values:
  558.  
  559.         MUIV_NListtree_DoubleClick_Off:
  560.             A doubleclick is not handled.
  561.  
  562.         MUIV_NListtree_DoubleClick_All:
  563.             All columns react on doubleclick.
  564.  
  565.         MUIV_NListtree_DoubleClick_Tree
  566.             Only a doubleclick on the defined tree column is recognized.
  567.  
  568.         MUIV_NListtree_DoubleClick_NoTrigger:
  569.             A doubleclick is not handled and not triggered!
  570.  
  571.  
  572.    NOTIFICATION
  573.  
  574.     The TriggerValue of the notification is the tree node you have double-
  575.     clicked, you can GetAttr() MUIA_NListtree_DoubleClick for the column
  576.     number. The struct 'MUI_NListtree_TreeNode *' is used for trigger.
  577.  
  578.     The notification is done on leaves and on node columns, which are not
  579.     set in MUIA_NListtree_DoubleClick.
  580.  
  581.    SEE ALSO
  582.  
  583.  
  584. NListtree.mcc/MUIA_NListtree_DragDropSorttree.mcc/MUIA_NListtree_DragDropSort
  585.  
  586.    NAME
  587.  
  588.     MUIA_NListtree_DragDropSort -- [IS.], BOOL
  589.  
  590.  
  591.    SPECIAL VALUES
  592.  
  593.  
  594.    FUNCTION
  595.  
  596.     Setting this attribute to FALSE will disable the ability to sort the
  597.     list tree by drag & drop. Defaults to TRUE.
  598.  
  599.  
  600.    NOTIFICATION
  601.  
  602.  
  603.    SEE ALSO
  604.  
  605.  
  606.  
  607. NListtree.mcc/MUIA_NListtree_DropTargetListtree.mcc/MUIA_NListtree_DropTarget
  608.  
  609.    NAME
  610.  
  611.     MUIA_NListtree_DropTarget -- [..G], ULONG
  612.  
  613.  
  614.    SPECIAL VALUES
  615.  
  616.    FUNCTION
  617.  
  618.     After a successfull drop operation, this value holds the entry where
  619.     the entry was dropped. The relative position (above etc.) can be
  620.     obtained by reading the attribute MUIA_NListtree_DropType.
  621.  
  622.  
  623.    NOTIFICATION
  624.  
  625.  
  626.    SEE ALSO
  627.  
  628.     MUIA_NListtree_DropTargetPos, MUIA_NListtree_DropType
  629.  
  630.  
  631. NListtree.mcc/MUIA_NListtree_DropTargetPosee.mcc/MUIA_NListtree_DropTargetPos
  632.  
  633.    NAME
  634.  
  635.     MUIA_NListtree_DropTargetPos -- [..G], ULONG
  636.  
  637.  
  638.    SPECIAL VALUES
  639.  
  640.    FUNCTION
  641.  
  642.     After a successfull drop operation, this value holds the integer
  643.     position of the entry where the dragged entry was dropped. The
  644.     entry itself can be obtained by reading MUIA_NListtree_DropTarget,
  645.     the relative position (above etc.) can be obtained by reading the
  646.     attribute MUIA_NListtree_DropType.
  647.  
  648.  
  649.    NOTIFICATION
  650.  
  651.  
  652.    SEE ALSO
  653.  
  654.     MUIA_NListtree_DropTarget, MUIA_NListtree_DropType
  655.  
  656.  
  657. NListtree.mcc/MUIA_NListtree_DropType   NListtree.mcc/MUIA_NListtree_DropType
  658.  
  659.    NAME
  660.  
  661.     MUIA_NListtree_DropType -- [..G], ULONG
  662.  
  663.  
  664.    SPECIAL VALUES
  665.  
  666.         MUIV_NListtree_DropType_None
  667.         MUIV_NListtree_DropType_Above
  668.         MUIV_NListtree_DropType_Below
  669.         MUIV_NListtree_DropType_Onto
  670.  
  671.  
  672.    FUNCTION
  673.  
  674.     After a successfull drop operation, this value holds the position
  675.     relative to the value of MUIA_NListtree_DropTarget/DropTargetPos.
  676.  
  677.  
  678.    NOTIFICATION
  679.  
  680.  
  681.    SEE ALSO
  682.  
  683.     MUIA_NListtree_DropTarget, MUIA_NListtree_DropTargetPos
  684.  
  685.  
  686. NListtree.mcc/MUIA_NListtree_DupNodeNamesttree.mcc/MUIA_NListtree_DupNodeName
  687.  
  688.    NAME
  689.  
  690.     MUIA_NListtree_DupNodeName -- [IS.], BOOL
  691.  
  692.  
  693.    SPECIAL VALUES
  694.  
  695.  
  696.    FUNCTION
  697.  
  698.     If this attribute is set to FALSE the names of the node will not be
  699.     duplicated, only the string pointers are used. Be careful the strings
  700.     have to be valid everytime.
  701.  
  702.  
  703.    NOTIFICATION
  704.  
  705.  
  706.    SEE ALSO
  707.  
  708.  
  709.  
  710. NListtree.mcc/MUIA_NListtree_EmptyNodesListtree.mcc/MUIA_NListtree_EmptyNodes
  711.  
  712.    NAME
  713.  
  714.     MUIA_NListtree_EmptyNodes -- [IS.], BOOL
  715.  
  716.  
  717.    SPECIAL VALUES
  718.  
  719.  
  720.    FUNCTION
  721.  
  722.     Setting this attribute to TRUE will display all empty nodes as leaves,
  723.     this means no list indicator is shown. Nevertheless the entry is
  724.     handled like a node.
  725.  
  726.  
  727.    NOTIFICATION
  728.  
  729.  
  730.    SEE ALSO
  731.  
  732.  
  733.  
  734. NListtree.mcc/MUIA_NListtree_FindNameHooktree.mcc/MUIA_NListtree_FindNameHook
  735.  
  736.    NAME    
  737.  
  738.     MUIA_NListtree_FindNameHook -- [IS.],
  739.  
  740.  
  741.    SPECIAL VALUES
  742.  
  743.         MUIV_NListtree_FindNameHook_CaseSensitive
  744.             Search for the complete string, case sensitive.
  745.  
  746.         MUIV_NListtree_FindNameHook_CaseInsensitive
  747.             Search for the complete string, case insensitive.
  748.  
  749.         MUIV_NListtree_FindNameHook_Part
  750.             Search for the first part of the string, case sensitive.
  751.  
  752.         MUIV_NListtree_FindNameHook_PartCaseInsensitive
  753.             Search for the first part of the string, case insensitive.
  754.  
  755.         MUIV_NListtree_FindNameHook_PointerCompare
  756.             Do only a pointer comparision. Note, that this is in fact
  757.             a pointer subtraction to fit into the rules. It returns
  758.             the difference (~0) of the two fields if no match.
  759.  
  760.    FUNCTION
  761.  
  762.     You can install a FindName hook to specify your own search
  763.     criteria.
  764.  
  765.     The find name hook will be called with the hook in A0, the object in
  766.     A2 and a MUIP_NListtree_FindNameMessage struct in A1
  767.     (see nlisttree_mcc.h). It should return ~ 0 for entries which are
  768.     not matching the pattern and a value of 0 if a match.
  769.  
  770.     The find name message structure holds a pointer to a string
  771.     containing the name to search for and pointers to the name- and user-
  772.     field of the node which is currently processed.
  773.  
  774.     The MUIV_NListtree_FindNameHook_CaseSensitive will be used as default.
  775.  
  776.    NOTIFICATION
  777.  
  778.  
  779.    SEE ALSO
  780.  
  781.  
  782. NListtree.mcc/MUIA_NListtree_FindUserDataHook/MUIA_NListtree_FindUserDataHook
  783.  
  784.    NAME
  785.  
  786.     MUIA_NListtree_FindUserDataHook -- [IS.],
  787.  
  788.  
  789.    SPECIAL VALUES
  790.  
  791.         MUIV_NListtree_FindUserDataHook_CaseSensitive
  792.             Search for the complete string, case sensitive.
  793.  
  794.         MUIV_NListtree_FindUserDataHook_CaseInsensitive
  795.             Search for the complete string, case insensitive.
  796.  
  797.         MUIV_NListtree_FindUserDataHook_Part
  798.             Search for the first part of the string, case sensitive.
  799.  
  800.         MUIV_NListtree_FindUserDataHook_PartCaseInsensitive
  801.             Search for the first part of the string, case insensitive.
  802.  
  803.         MUIV_NListtree_FindUserDataHook_PointerCompare
  804.             Do only a pointer comparision. Note, that this is in fact
  805.             a pointer subtraction to fit into the rules. It returns
  806.             the difference (~0) of the two user fields if no match.
  807.  
  808.  
  809.    FUNCTION
  810.  
  811.     You can install a FindUserData hook to specify your own search
  812.     criteria.
  813.  
  814.     The find user data hook will be called with the hook in A0, the object
  815.     in A2 and a MUIP_NListtree_FindUserDataMessage struct in A1
  816.     (see nlisttree_mcc.h). It should return ~ 0 for entries which are
  817.     not matching the pattern and a value of 0 if a match.
  818.  
  819.     The find user data message structure holds a pointer to a string
  820.     containing the data to search for and pointers to the user- and name-
  821.     field of the node which is currently processed.
  822.  
  823.     MUIV_NListtree_FindUserDataHook_CaseSensitive will be used as
  824.     default.
  825.  
  826.    NOTIFICATION
  827.  
  828.  
  829.    SEE ALSO
  830.  
  831.  
  832. NListtree.mcc/MUIA_NListtree_Format       NListtree.mcc/MUIA_NListtree_Format
  833.  
  834.    NAME
  835.  
  836.     MUIA_NListtree_Format -- [IS.], STRPTR
  837.  
  838.  
  839.    SPECIAL VALUES
  840.  
  841.  
  842.    FUNCTION
  843.  
  844.     Same as MUIA_NList_Format, but one column is reserved for the tree
  845.     indicators and the names of the nodes.
  846.     
  847.     For further detailed information see MUIA_NList_Format!
  848.  
  849.  
  850.    NOTIFICATION
  851.  
  852.  
  853.    SEE ALSO
  854.  
  855.     MUIA_NList_Format, MUIA_NListtree_DisplayHook,
  856.     MUIA_Text_Contents
  857.  
  858.  
  859. NListtree.mcc/MUIA_NListtree_MultiSelectsttree.mcc/MUIA_NListtree_MultiSelect
  860.  
  861.    NAME
  862.  
  863.     MUIA_NListtree_MultiSelect -- [I..],
  864.  
  865.  
  866.    SPECIAL VALUES
  867.  
  868.         MUIV_NListtree_MultiSelect_None
  869.         MUIV_NListtree_MultiSelect_Default
  870.         MUIV_NListtree_MultiSelect_Shifted
  871.         MUIV_NListtree_MultiSelect_Always
  872.  
  873.  
  874.    FUNCTION
  875.  
  876.     Four possibilities exist for a listviews multi select
  877.     capabilities:
  878.  
  879.         MUIV_NListtree_MultiSelect_None:
  880.             The list tree cannot multiselect at all.
  881.  
  882.         MUIV_NListtree_MultiSelect_Default:
  883.             The multi select type (with or without shift)
  884.             depends on the users preferences setting.
  885.  
  886.         MUIV_NListtree_MultiSelect_Shifted:
  887.             Overrides the users prefs, multi selecting only
  888.             together with shift key.
  889.  
  890.         MUIV_NListtree_MultiSelect_Always:
  891.             Overrides the users prefs, multi selecting
  892.             without shift key.
  893.  
  894.  
  895.    NOTIFICATION
  896.  
  897.     NOTES
  898.  
  899.    SEE ALSO
  900.  
  901.     MUIA_NListtree_MultiTestHook, MUIM_NListtree_MultiSelect
  902.  
  903.  
  904. NListtree.mcc/MUIA_NListtree_MultiTestHookee.mcc/MUIA_NListtree_MultiTestHook
  905.  
  906.    NAME
  907.  
  908.     MUIA_NListtree_MultiTestHook -- [IS.], struct Hook *
  909.  
  910.  
  911.    SPECIAL VALUES
  912.  
  913.  
  914.    FUNCTION
  915.  
  916.     If you plan to have a multi selecting list tree but not
  917.     all of your entries are actually multi selectable, you
  918.     can supply a MUIA_NListtree_MultiTestHook.
  919.  
  920.     The multi test hook will be called with the hook in A0, the object
  921.     in A2 and a MUIP_NListtree_MultiTestMessage struct in A1 (see
  922.     nlisttree_mcc.h) and should return TRUE if the entry is multi
  923.     selectable, FALSE otherwise.
  924.  
  925.     To remove the hook set this to NULL.
  926.  
  927.  
  928.    NOTIFICATION
  929.  
  930.  
  931.    SEE ALSO
  932.  
  933.     MUIA_NListtree_ConstructHook, MUIA_NListtree_DestructHook
  934.  
  935.  
  936. NListtree.mcc/MUIA_NListtree_OpenHook   NListtree.mcc/MUIA_NListtree_OpenHook
  937.  
  938.    NAME
  939.  
  940.     MUIA_NListtree_OpenHook -- [IS.], struct Hook *
  941.  
  942.  
  943.    SPECIAL VALUES
  944.  
  945.  
  946.    FUNCTION
  947.  
  948.     The open hook is called whenever a list node will be opened, so you
  949.     can change the list before the node is open.
  950.     
  951.     The open hook will be called with the hook in A0, the object in A2
  952.     and a MUIP_NListtree_OpenMessage struct in A1 (see nlisttree_mcc.h).
  953.  
  954.     To remove the hook set this to NULL.
  955.  
  956.  
  957.    NOTIFICATION
  958.  
  959.  
  960.    SEE ALSO
  961.  
  962.     MUIA_NListtree_Open, MUIA_NListtree_CloseHook
  963.  
  964.  
  965. NListtree.mcc/MUIA_NListtree_Quiet         NListtree.mcc/MUIA_NListtree_Quiet
  966.  
  967.    NAME
  968.  
  969.     MUIA_NListtree_Quiet -- [.S.], QUIET
  970.  
  971.  
  972.    SPECIAL VALUES
  973.  
  974.  
  975.    FUNCTION
  976.  
  977.     If you add/remove lots of entries to/from a listtree, this will cause
  978.     lots of screen action and slow down the operation. Setting
  979.     MUIA_NListtree_Quiet to TRUE will temporarily prevent the listtree from
  980.     being refreshed, this refresh will take place only once when you set
  981.     it back to FALSE again.
  982.  
  983.     MUIA_NListtree_Quiet holds a nesting count to avoid trouble with
  984.     multiple setting/unsetting this attribute. You are encoraged to
  985.     always use TRUE/FALSE pairs here or you will went in trouble.
  986.  
  987.     DO NOT USE MUIA_NList_Quiet here!
  988.  
  989.  
  990.    NOTIFICATION
  991.  
  992.  
  993.    SEE ALSO
  994.  
  995.     MUIM_NListtree_Insert, MUIM_NListtree_Remove
  996.  
  997.  
  998. NListtree.mcc/MUIA_NListtree_ShowTree   NListtree.mcc/MUIA_NListtree_ShowTree
  999.  
  1000.    NAME
  1001.  
  1002.     MUIA_NListtree_ShowTree -- [ISG], ULONG
  1003.  
  1004.  
  1005.    SPECIAL VALUES
  1006.  
  1007.    FUNCTION
  1008.  
  1009.     Specify FALSE here if you want the whole tree to be disappear.
  1010.     Defaults to TRUE;
  1011.  
  1012.    NOTIFICATION
  1013.  
  1014.  
  1015.    SEE ALSO
  1016.  
  1017.  
  1018. NListtree.mcc/MUIA_NListtree_Title         NListtree.mcc/MUIA_NListtree_Title
  1019.  
  1020.    NAME
  1021.  
  1022.     MUIA_NListtree_Title -- [IS.], BOOL
  1023.  
  1024.  
  1025.    SPECIAL VALUES
  1026.  
  1027.  
  1028.    FUNCTION
  1029.  
  1030.     Specify a title for the current listtree.
  1031.  
  1032.     For detailed information see MUIA_NList_Title!
  1033.  
  1034.  
  1035.    NOTIFICATION
  1036.  
  1037.  
  1038.     BUGS
  1039.  
  1040.     The title should not be a string as for single column listviews. This
  1041.     attribute can only be set to TRUE or FALSE.
  1042.  
  1043.  
  1044.    SEE ALSO
  1045.  
  1046.  
  1047.  
  1048. NListtree.mcc/MUIA_NListtree_TreeColumnListtree.mcc/MUIA_NListtree_TreeColumn
  1049.  
  1050.    NAME
  1051.  
  1052.     MUIA_NListtree_TreeColumn -- [ISG], ULONG
  1053.  
  1054.  
  1055.    SPECIAL VALUES
  1056.  
  1057.    FUNCTION
  1058.  
  1059.     Specify the column of the list tree, the node indicator and the name
  1060.     of the node are displayed in.
  1061.  
  1062.  
  1063.    NOTIFICATION
  1064.  
  1065.  
  1066.    SEE ALSO
  1067.  
  1068.     MUIA_NListtree_DisplayHook, MUIA_NListtree_Format
  1069.  
  1070.  
  1071. NListtree.mcc/MUIM_NListtree_Active       NListtree.mcc/MUIM_NListtree_Active
  1072.  
  1073.    NAME
  1074.  
  1075.     MUIM_NListtree_Active -- Called for every active change. (V1)
  1076.  
  1077.  
  1078.    SYNOPSIS
  1079.  
  1080.     DoMethodA(obj, MUIM_NListtree_Active,
  1081.         struct MUIP_NListtree_Active *activemessage);
  1082.  
  1083.  
  1084.    FUNCTION
  1085.  
  1086.     This method must not be called directly. It will be called by
  1087.     NListtree if the active entry changes. This is an addition to
  1088.     MUIA_NListtree_Active
  1089.  
  1090.  
  1091.    INPUTS
  1092.  
  1093.    RESULT
  1094.  
  1095.    EXAMPLE
  1096.  
  1097.    NOTES
  1098.  
  1099.    BUGS
  1100.  
  1101.    SEE ALSO
  1102.  
  1103.     MUIA_NListtree_Active
  1104.  
  1105.  
  1106. NListtree.mcc/MUIM_NListtree_Clear         NListtree.mcc/MUIM_NListtree_Clear
  1107.  
  1108.    NAME
  1109.  
  1110.     MUIM_NListtree_Clear -- Clear the complete listview. (V1)
  1111.  
  1112.  
  1113.    SYNOPSIS
  1114.  
  1115.     DoMethod(obj, MUIM_NListtree_Clear, NULL, 0)
  1116.  
  1117.  
  1118.    FUNCTION
  1119.  
  1120.     Clear the complete listview, calling destruct hook for each entry.
  1121.  
  1122.  
  1123.    INPUTS
  1124.  
  1125.    RESULT
  1126.  
  1127.    EXAMPLE
  1128.  
  1129.         // Clear the listview!
  1130.         DoMethod( nlisttree, MUIM_NListtree_Clear, NULL, 0 );
  1131.  
  1132.  
  1133.    NOTES
  1134.  
  1135.     For now, when using this method, you MUST supply NULL for the list
  1136.     node and 0 for flags for future compatibility.
  1137.     This will definitely change!
  1138.  
  1139.  
  1140.    BUGS
  1141.  
  1142.    SEE ALSO
  1143.  
  1144.     MUIM_NListtree_Remove, MUIA_NListtree_DestructHook,
  1145.  
  1146.  
  1147. NListtree.mcc/MUIM_NListtree_Close         NListtree.mcc/MUIM_NListtree_Close
  1148.  
  1149.    NAME    
  1150.  
  1151.     MUIM_NListtree_Close -- Close the specified list node. (V1)
  1152.  
  1153.  
  1154.    SYNOPSIS
  1155.  
  1156.     DoMethod(obj, MUIM_NListtree_Close,
  1157.         struct MUI_NListtree_TreeNode *listnode,
  1158.         struct MUI_NListtree_TreeNode *treenode,
  1159.         ULONG flags);
  1160.  
  1161.  
  1162.    FUNCTION
  1163.  
  1164.     Close a node or nodes of a listtree. It is checked if the tree node
  1165.     is a node, not a leaf!
  1166.  
  1167.     When the active entry was a child of the closed node, the closed node
  1168.     will become active.
  1169.  
  1170.  
  1171.    INPUTS
  1172.  
  1173.     listnode -    Specify the node which list is used to find the entry. The
  1174.                 search is started at the head of this list.
  1175.  
  1176.         MUIV_NListtree_Close_ListNode_Root
  1177.             The root list is used.
  1178.  
  1179.         MUIV_NListtree_Close_ListNode_Parent
  1180.             The list which is the parent of the active list is used.
  1181.  
  1182.         MUIV_NListtree_Close_ListNode_Active
  1183.             The list of the active node is used.
  1184.  
  1185.  
  1186.     treenode -    The node which should be closed. If there are children
  1187.                 of the node, they are also closed.
  1188.  
  1189.         MUIV_NListtree_Close_TreeNode_Head
  1190.             The head of the list defined in 'listnode' is closed.
  1191.  
  1192.         MUIV_NListtree_Close_TreeNode_Tail:
  1193.             Closes the tail of the list defined in 'listnode'.
  1194.  
  1195.         MUIV_NListtree_Close_TreeNode_Active:
  1196.             Closes the active node.
  1197.  
  1198.         MUIV_NListtree_Close_TreeNode_All:
  1199.             Closes all nodes of the list which is specified in
  1200.             'listnode'.
  1201.  
  1202.  
  1203.    RESULT
  1204.  
  1205.    EXAMPLE
  1206.  
  1207.         // Close the active list.
  1208.         DoMethod(obj, MUIM_NListtree_Close,
  1209.             MUIV_NListtree_Close_ListNode_Active,
  1210.             MUIV_NListtree_Close_TreeNode_Active, 0);
  1211.  
  1212.  
  1213.    NOTES
  1214.  
  1215.    BUGS
  1216.  
  1217.    SEE ALSO
  1218.     MUIM_NListtree_Open
  1219.  
  1220.  
  1221. NListtree.mcc/MUIM_NListtree_Copy           NListtree.mcc/MUIM_NListtree_Copy
  1222.  
  1223.    NAME
  1224.  
  1225.     MUIM_NListtree_Copy -- Copy an entry (create it) to the spec. pos. (V1)
  1226.  
  1227.  
  1228.    SYNOPSIS
  1229.  
  1230.     DoMethod(obj, MUIM_NListtree_Copy,
  1231.         struct MUI_NListtree_TreeNode *srclistnode,
  1232.         struct MUI_NListtree_TreeNode *srctreenode,
  1233.         struct MUI_NListtree_TreeNode *destlistnode,
  1234.         struct MUI_NListtree_TreeNode *desttreenode,
  1235.         ULONG flags);
  1236.  
  1237.  
  1238.    FUNCTION
  1239.  
  1240.     Copy an entry to the position after a defined node. The complete
  1241.     child structure will be copied.
  1242.  
  1243.  
  1244.    INPUTS
  1245.  
  1246.     srclistnode -    Specify the node which list is used to find the
  1247.                     entry. The search is started at the head of this
  1248.                     list.
  1249.  
  1250.         MUIV_NListtree_Copy_SourceListNode_Root
  1251.             The root list is used as the starting point.
  1252.  
  1253.         MUIV_NListtree_Copy_SourceListNode_Active
  1254.             The active list (the list of the active node) is used as
  1255.             the starting point.
  1256.  
  1257.     srctreenode -    Specifies the node which should be copied.
  1258.  
  1259.         MUIV_NListtree_Copy_SourceTreeNode_Head
  1260.             The head of the list defined in 'srclistnode' is copied.
  1261.  
  1262.         MUIV_NListtree_Copy_SourceTreeNode_Tail
  1263.             The tail of the list defined in 'srclistnode' is copied.
  1264.  
  1265.         MUIV_NListtree_Copy_SourceTreeNode_Active
  1266.             The active node is copied.
  1267.  
  1268.     destlistnode -    Specify the node which list is used to find the
  1269.                     entry. The search is started at the head of this
  1270.                     list.
  1271.  
  1272.         MUIV_NListtree_Copy_DestListNode_Root
  1273.             The root list.
  1274.  
  1275.         MUIV_NListtree_Copy_DestListNode_Active
  1276.             The list of the active node.
  1277.  
  1278.     desttreenode -    This node is the predecessor of the entry which is
  1279.                     inserted.
  1280.  
  1281.         MUIV_NListtree_Copy_DestTreeNode_Head
  1282.             The node is copied to the head of the list defined in
  1283.             'destlistnode'.
  1284.  
  1285.         MUIV_NListtree_Copy_DestTreeNode_Tail
  1286.             The node is copied to the tail of the list defined in
  1287.             'destlistnode'.
  1288.  
  1289.         MUIV_NListtree_Copy_DestTreeNode_Active:
  1290.             The node is copied to one entry after the active node.
  1291.  
  1292.         MUIV_NListtree_Copy_DestTreeNode_Sorted:
  1293.             The node is copied to the list using the sort hook.
  1294.  
  1295.     flags -        Some flags to adjust moving.
  1296.  
  1297.         MUIV_NListtree_Copy_Flag_KeepStructure
  1298.             The full tree structure from the selected entry to
  1299.             the root list is copied (created) at destination.
  1300.  
  1301.  
  1302.    RESULT
  1303.  
  1304.    EXAMPLE
  1305.  
  1306.         // Copy the active entry to the head of
  1307.         // another list node.
  1308.         DoMethod(obj,
  1309.             MUIV_NListtree_Copy_SourceListNode_Active,
  1310.             MUIV_NListtree_Copy_SourceTreeNode_Active,
  1311.             anylistnode,
  1312.             MUIV_NListtree_Copy_DestTreeNode_Head,
  1313.             0);
  1314.  
  1315.  
  1316.    NOTES
  1317.  
  1318.    BUGS
  1319.  
  1320.    SEE ALSO
  1321.  
  1322.     MUIM_NListtree_Insert, MUIM_NListtree_Remove,
  1323.     MUIM_NListtree_Exchange, MUIA_NListtree_CompareHook,
  1324.     MUIM_NListtree_Move
  1325.  
  1326.  
  1327. NListtree.mcc/MUIM_NListtree_CopyToClipListtree.mcc/MUIM_NListtree_CopyToClip
  1328.  
  1329.    NAME
  1330.  
  1331.     MUIM_NListtree_CopyToClip -- Called for every clipboard copy action. (V1)
  1332.  
  1333.  
  1334.    SYNOPSIS
  1335.  
  1336.     DoMethodA(obj, MUIM_NListtree_CopyToClip,
  1337.         struct MUIP_NListtree_CopyToClip *ctcmessage);
  1338.  
  1339.  
  1340.    FUNCTION
  1341.  
  1342.     Do a copy to clipboard from an entry/entry content.
  1343.  
  1344.  
  1345.    INPUTS
  1346.  
  1347.         TreeNode    - Tree node to copy contents from. Use
  1348.                      MUIV_NListtree_CopyToClip_Active to copy the
  1349.                       active entry.
  1350.  
  1351.         Pos            - Entry position.
  1352.  
  1353.         Unit        - Clipboard unit to copy entry contents to.
  1354.  
  1355.  
  1356.    RESULT
  1357.  
  1358.    EXAMPLE
  1359.  
  1360.    NOTES
  1361.  
  1362.    BUGS
  1363.  
  1364.    SEE ALSO
  1365.  
  1366.     MUIA_NListtree_CopyToClipHook
  1367.  
  1368.  
  1369. NListtree.mcc/MUIM_NListtree_DoubleClicksttree.mcc/MUIM_NListtree_DoubleClick
  1370.  
  1371.    NAME
  1372.  
  1373.     MUIM_NListtree_DoubleClick -- Called for every double click. (V1)
  1374.  
  1375.  
  1376.    SYNOPSIS
  1377.  
  1378.     DoMethodA(obj, MUIM_NListtree_DoubleClick,
  1379.         struct MUIP_NListtree_DoubleClick *doubleclickmsg);
  1380.  
  1381.  
  1382.    FUNCTION
  1383.  
  1384.     This method must not be called directly. It will be called by
  1385.     NListtree if an double click event occurs. This is an addition to
  1386.     MUIA_NListtree_DoubleClick
  1387.  
  1388.  
  1389.    INPUTS
  1390.  
  1391.    RESULT
  1392.  
  1393.    EXAMPLE
  1394.  
  1395.    NOTES
  1396.  
  1397.    BUGS
  1398.  
  1399.    SEE ALSO
  1400.  
  1401.     MUIA_NListtree_DoubleClick
  1402.  
  1403.  
  1404. NListtree.mcc/MUIM_NListtree_Exchange   NListtree.mcc/MUIM_NListtree_Exchange
  1405.  
  1406.    NAME
  1407.  
  1408.     MUIM_NListtree_Exchange -- Exchanges two tree nodes. (V1)
  1409.  
  1410.  
  1411.    SYNOPSIS
  1412.  
  1413.     DoMethod(obj, MUIM_NListtree_Exchange,
  1414.         struct MUI_NListtree_TreeNode *listnode1,
  1415.         struct MUI_NListtree_TreeNode *treenode1,
  1416.         struct MUI_NListtree_TreeNode *listnode2,
  1417.         struct MUI_NListtree_TreeNode *treenode2,
  1418.         ULONG flags);
  1419.  
  1420.  
  1421.    FUNCTION
  1422.  
  1423.     Exchange two tree nodes.
  1424.  
  1425.  
  1426.    INPUTS
  1427.  
  1428.     listnode1 -    Specify the list node of the entry which
  1429.                 should be exchanged.
  1430.  
  1431.         MUIV_NListtree_Exchange_ListNode1_Root
  1432.             The root list is used.
  1433.  
  1434.         MUIV_NListtree_Exchange_ListNode1_Active
  1435.             The active list (the list of the active node) is used.
  1436.  
  1437.     treenode1 -    Specify the node which should be exchanged.
  1438.  
  1439.         MUIV_NListtree_Exchange_TreeNode1_Head
  1440.             The head of the list defined in 'listnode1' is
  1441.             exchanged.
  1442.  
  1443.         MUIV_NListtree_Exchange_TreeNode1_Tail
  1444.             The tail of the list defined in 'listnode1' is
  1445.             exchanged.
  1446.  
  1447.         MUIV_NListtree_Exchange_TreeNode1_Active
  1448.             The active node is exchanged.
  1449.  
  1450.     listnode2 -    Specify the second list node which is used for exchange.
  1451.  
  1452.         MUIV_NListtree_Exchange_ListNode2_Root
  1453.             The root list.
  1454.  
  1455.         MUIV_NListtree_Exchange_ListNode2_Active
  1456.             The list of the active node.
  1457.  
  1458.     treenode2 -    This node is the second entry which is exchanged.
  1459.  
  1460.         MUIV_NListtree_Exchange_TreeNode2_Head
  1461.             The node 'treenode1' is exchanged with the head of the
  1462.             list defined in 'listnode2'.
  1463.  
  1464.         MUIV_NListtree_Exchange_TreeNode2_Tail
  1465.             The node 'treenode1' is exchanged with the tail of the
  1466.             list defined in 'ln2'.
  1467.  
  1468.         MUIV_NListtree_Exchange_TreeNode2_Active:
  1469.             The node 'treenode1' is exchanged with the active node.
  1470.  
  1471.         MUIV_NListtree_Exchange_TreeNode2_Up:
  1472.             The node 'treenode1' is exchanged with the entry
  1473.             previous to the one specified in 'treenode1'.
  1474.  
  1475.         MUIV_NListtree_Exchange_TreeNode2_Down:
  1476.             The node 'treenode1' is exchanged with the entry next
  1477.             (the successor) to the one specified in 'treenode1'.
  1478.  
  1479.  
  1480.    RESULT
  1481.  
  1482.    EXAMPLE
  1483.  
  1484.         // Exchange the active entry with the successor.
  1485.         DoMethod(obj,
  1486.             MUIV_NListtree_Exchange_ListNode1_Active,
  1487.             MUIV_NListtree_Exchange_TreeNode1_Active,
  1488.             MUIV_NListtree_Exchange_ListNode2_Active,
  1489.             MUIV_NListtree_Exchange_TreeNode2_Down,
  1490.             0);
  1491.  
  1492.  
  1493.    NOTES
  1494.  
  1495.    BUGS
  1496.  
  1497.    SEE ALSO
  1498.  
  1499.     MUIM_NListtree_Move, MUIM_NListtree_Insert,
  1500.     MUIM_NListtree_Remove
  1501.  
  1502.  
  1503. NListtree.mcc/MUIM_NListtree_FindName   NListtree.mcc/MUIM_NListtree_FindName
  1504.  
  1505.    NAME    
  1506.  
  1507.     MUIM_NListtree_FindName -- Find node using name match. (V1)
  1508.  
  1509.  
  1510.    SYNOPSIS
  1511.  
  1512.     struct MUI_NListtree_TreeNode *treenode =
  1513.         DoMethod(obj, MUIM_NListtree_FindName,
  1514.             struct MUI_NListtree_TreeNode *listnode,
  1515.             STRPTR name, ULONG flags);
  1516.  
  1517.  
  1518.    FUNCTION
  1519.  
  1520.     Find a node which name matches the specified one using the list node as
  1521.     start point..
  1522.  
  1523.  
  1524.    INPUTS
  1525.     listnode -    Specify the node which list is used to find the name.
  1526.  
  1527.         MUIV_NListtree_FindName_ListNode_Root
  1528.             Use the root list as the base list.
  1529.  
  1530.         MUIV_NListtree_FindName_ListNode_Active
  1531.             Use the list of the active node as the base.
  1532.  
  1533.     name -        Specify the name of the node to find. But you can search
  1534.                 for anything in tn_Name or tn_User field here by simply
  1535.                 supplying the searched data and handling it in your
  1536.                 own FindNameHook.
  1537.  
  1538.     flags:
  1539.  
  1540.         MUIV_NListtree_FindName_Flag_SameLevel
  1541.             Only nodes on the same level are affected.
  1542.  
  1543.         MUIV_NListtree_FindName_Flag_Visible
  1544.             The node is only returned if it is visible (only visible
  1545.             entries are checked).
  1546.  
  1547.         MUIV_NListtree_FindName_Flag_Activate
  1548.             If found, the entry will be activated.
  1549.  
  1550.         MUIV_NListtree_FindName_Flag_Selected
  1551.             Find only selected nodes.
  1552.  
  1553.         MUIV_NListtree_FindName_Flag_StartNode
  1554.             The specified entry in listnode is the start point for
  1555.             search and must not be a list node. It can also be a
  1556.             normal entry.
  1557.  
  1558.    RESULT
  1559.  
  1560.     Returns the found node if available, NULL otherwise.    
  1561.  
  1562.  
  1563.    EXAMPLE
  1564.  
  1565.         // Find 2nd node by name.
  1566.         struct MUI_NListtree_TreeNode *treenode =
  1567.             DoMethod(obj, MUIM_NListtree_FindName,
  1568.                 listnode, "2nd node",
  1569.                 MUIV_NListtree_FindName_SameLevel|
  1570.                 MUIV_NListtree_FindName_Visible);
  1571.  
  1572.         if ( treenode == NULL )
  1573.         {
  1574.             PrintToUser( "No matching entry found." );
  1575.         }
  1576.  
  1577.  
  1578.    NOTES
  1579.  
  1580.    BUGS
  1581.  
  1582.    SEE ALSO
  1583.  
  1584.     MUIM_NListtree_FindUserData, MUIM_NListtree_GetEntry,
  1585.     MUIA_NListtree_FindNameHook
  1586.  
  1587.  
  1588. NListtree.mcc/MUIM_NListtree_FindUserDatatree.mcc/MUIM_NListtree_FindUserData
  1589.  
  1590.    NAME
  1591.  
  1592.     MUIM_NListtree_FindUserData -- Find node upon user data. (V1)
  1593.  
  1594.  
  1595.    SYNOPSIS
  1596.  
  1597.     struct MUI_NListtree_TreeNode *treenode =
  1598.         DoMethod(obj, MUIM_NListtree_FindUserData,
  1599.             struct MUI_NListtree_TreeNode *listnode,
  1600.             APTR userdata, ULONG flags);
  1601.  
  1602.  
  1603.    FUNCTION
  1604.  
  1605.     Find a node which user data matches the specified one using the list
  1606.     node as start point..
  1607.     This method is designed as a second possibility for searching.
  1608.     Because you are able to search for anything, you may set special
  1609.     hooks for searching two different fields in two different hooks with
  1610.     these two methods.
  1611.  
  1612.  
  1613.    INPUTS
  1614.     listnode -    Specify the node which list is used to find the user data.
  1615.  
  1616.         MUIV_NListtree_FindUserData_ListNode_Root
  1617.             Use the root list as the base list.
  1618.  
  1619.         MUIV_NListtree_FindUserData_ListNode_Active
  1620.             Use the list of the active node as the base.
  1621.  
  1622.     userdata -    Specify the user data of the node to find. You can search
  1623.                 for anything in tn_Name or tn_User field here by simply
  1624.                 supplying the searched data and handling it in your
  1625.                 own FindUserDataHook.
  1626.  
  1627.     flags:
  1628.  
  1629.         MUIV_NListtree_FindUserData_Flag_SameLevel
  1630.             Only nodes on the same level are affected.
  1631.  
  1632.         MUIV_NListtree_FindUserData_Flag_Visible
  1633.             The node is only returned if it is visible (only visible
  1634.             entries are checked).
  1635.  
  1636.         MUIV_NListtree_FindUserData_Flag_Activate
  1637.             If found, the entry will be activated.
  1638.  
  1639.         MUIV_NListtree_FindUserData_Flag_Selected
  1640.             Find only selected nodes.
  1641.  
  1642.         MUIV_NListtree_FindUserData_Flag_StartNode
  1643.             The specified entry in listnode is the start point for
  1644.             search and must not be a list node. It can also be a
  1645.             normal entry.
  1646.  
  1647.    RESULT
  1648.  
  1649.     Returns the found node if available, NULL otherwise.
  1650.  
  1651.  
  1652.    EXAMPLE
  1653.  
  1654.         // Find node by user data.
  1655.         struct MUI_NListtree_TreeNode *treenode =
  1656.             DoMethod(obj, MUIM_NListtree_FindUserData,
  1657.                 listnode, "my data",
  1658.                 MUIV_NListtree_FindUserData_SameLevel|
  1659.                 MUIV_NListtree_FindUserData_Visible);
  1660.  
  1661.         if ( treenode == NULL )
  1662.         {
  1663.             PrintToUser( "No matching entry found." );
  1664.         }
  1665.  
  1666.  
  1667.    NOTES
  1668.  
  1669.    BUGS
  1670.  
  1671.    SEE ALSO
  1672.  
  1673.     MUIM_NListtree_FindName, MUIM_NListtree_GetEntry,
  1674.     MUIA_NListtree_FindUserDataHook
  1675.  
  1676.  
  1677. NListtree.mcc/MUIM_NListtree_GetEntry   NListtree.mcc/MUIM_NListtree_GetEntry
  1678.  
  1679.    NAME
  1680.  
  1681.     MUIM_NListtree_GetEntry -- Get another node in relation to this. (V1)
  1682.  
  1683.  
  1684.    SYNOPSIS
  1685.  
  1686.     struct MUI_NListtree_TreeNode *rettreenode =
  1687.         DoMethod(obj, MUIM_NListtree_GetEntry,
  1688.             struct MUI_NListtree_TreeNode *treenode,
  1689.             LONG pos, ULONG flags);
  1690.  
  1691.  
  1692.    FUNCTION
  1693.  
  1694.     Get another node in relation to the specified list or node.
  1695.  
  1696.  
  1697.    INPUTS
  1698.  
  1699.     treenode -    Define the node which is used to find another one.
  1700.                 This can also be a list node, if the position is
  1701.                 related to a list.
  1702.  
  1703.         MUIV_NListtree_GetEntry_ListNode_Root
  1704.             The root list is used.
  1705.  
  1706.         MUIV_NListtree_GetEntry_ListNode_Active:
  1707.             The list with the active entry is used.
  1708.  
  1709.     pos -    The relative position of the node 'treenode'.
  1710.  
  1711.         MUIV_NListtree_GetEntry_Position_Head
  1712.             The head of the list is returned.
  1713.  
  1714.         MUIV_NListtree_GetEntry_Position_Tail
  1715.             The tail of the list is returned.
  1716.  
  1717.         MUIV_NListtree_GetEntry_Position_Active
  1718.             The active node is returned. If there is no active entry,
  1719.             NULL is returned.
  1720.  
  1721.         MUIV_NListtree_GetEntry_Position_Next
  1722.             The node next to the specified node is returned. Returns NULL
  1723.             if there is no next entry.
  1724.  
  1725.         MUIV_NListtree_GetEntry_Position_Previous
  1726.             The node right before the specified node is returned.
  1727.             Returns NULL if there is no previous entry (if 'treenode'
  1728.             is the head of the list.
  1729.  
  1730.         MUIV_NListtree_GetEntry_Position_Parent
  1731.             The list node of the specified 'treenode' is returned.
  1732.  
  1733.     flags:
  1734.  
  1735.         MUIV_NListtree_GetEntry_Flag_SameLevel:
  1736.             Only nodes in the same level are affected.
  1737.  
  1738.         MUIV_NListtree_GetEntry_Flag_Visible:
  1739.             The position is counted on visible entries only.
  1740.  
  1741.  
  1742.    RESULT
  1743.  
  1744.     Returns the requested node if available, NULL otherwise.
  1745.  
  1746.  
  1747.    EXAMPLE
  1748.  
  1749.         // Get the next entry.
  1750.         struct MUI_NListtree_TreeNode *treenode =
  1751.             DoMethod(obj, MUIM_NListtree_GetEntry, treenode,
  1752.             MUIV_NListtree_GetEntry_Position_Next, 0);
  1753.  
  1754.         if ( treenode != NULL )
  1755.         {
  1756.             PrintToUser( "Next entry found!" );
  1757.         }
  1758.  
  1759.  
  1760.    NOTES
  1761.  
  1762.    BUGS
  1763.  
  1764.    SEE ALSO
  1765.  
  1766.     MUIM_NList_GetEntry
  1767.  
  1768.  
  1769. NListtree.mcc/MUIM_NListtree_GetNr         NListtree.mcc/MUIM_NListtree_GetNr
  1770.  
  1771.    NAME
  1772.  
  1773.     MUIM_NListtree_GetNr -- Get the position number of a tree node. (V1)
  1774.  
  1775.  
  1776.    SYNOPSIS
  1777.  
  1778.     ULONG number = DoMethod(obj, MUIM_NListtree_GetNr,
  1779.         struct MUI_NListtree_TreeNode *treenode, ULONG flags);
  1780.  
  1781.  
  1782.    FUNCTION
  1783.  
  1784.     Get the position number of the specified tree node.
  1785.  
  1786.  
  1787.    INPUTS
  1788.  
  1789.     treenode -    Specify the node to count the position of.
  1790.  
  1791.         MUIV_NListtree_GetNr_TreeNode_Active:
  1792.             The position is counted related to the active node.
  1793.  
  1794.     flags:
  1795.  
  1796.         MUIV_NListtree_GetNr_Flag_CountAll
  1797.             Returns the number of all entries.
  1798.  
  1799.         MUIV_NListtree_GetNr_Flag_CountLevel
  1800.             Returns the number of entries of the list the
  1801.             specified node is in.
  1802.  
  1803.         MUIV_NListtree_GetNr_Flag_CountList
  1804.             Returns the number of the entries of the active list node
  1805.             (the specified node is in).
  1806.  
  1807.         MUIV_NListtree_GetNr_Flag_ListEmpty
  1808.             Returns TRUE if the specified list node is empty.
  1809.  
  1810.         MUIV_NListtree_GetNr_Flag_Visible
  1811.             Returns the position number of an visible entry. -1 if the
  1812.             entry is invisible. The position is counted on visible entries
  1813.             only.
  1814.  
  1815.  
  1816.    RESULT
  1817.  
  1818.    EXAMPLE
  1819.  
  1820.         // Check if the active (list) node is empty.
  1821.         ULONG empty = DoMethod(obj, MUIM_NListtree_GetNr,
  1822.             MUIV_NListtree_GetNr_TreeNode_Active,
  1823.             MUIV_NListtree_GetNr_Flag_ListEmpty);
  1824.  
  1825.         if ( empty == TRUE )
  1826.         {
  1827.             AddThousandEntries();
  1828.         }
  1829.  
  1830.    NOTES
  1831.  
  1832.    BUGS
  1833.  
  1834.    SEE ALSO
  1835.  
  1836.     MUIM_NListtree_GetEntry
  1837.  
  1838. NListtree.mcc/MUIM_NListtree_Insert       NListtree.mcc/MUIM_NListtree_Insert
  1839.  
  1840.    NAME
  1841.  
  1842.     MUIM_NListtree_Insert -- Insert an entry at the specified position. (V1)
  1843.  
  1844.  
  1845.    SYNOPSIS
  1846.  
  1847.     struct MUI_NListtree_TreeNode *treenode =
  1848.         DoMethod(obj, MUIM_NListtree_Insert,
  1849.             STRPTR name, APTR userdata,
  1850.             struct MUI_NListtree_TreeNode *listnode,
  1851.             struct MUI_NListtree_TreeNode *prevtreenode,
  1852.             ULONG flags);
  1853.  
  1854.  
  1855.    FUNCTION
  1856.  
  1857.     Insert an entry at the position, which is defined in 'listnode'
  1858.     and 'prevtreenode'. Name contains the name of the entry as string
  1859.     which is buffered. The user entry can be used as you like.
  1860.  
  1861.  
  1862.    INPUTS
  1863.  
  1864.     name/userdata - What the names say ;-)
  1865.  
  1866.  
  1867.     listnode -        Specify the node which list is used to insert
  1868.                     the entry.
  1869.  
  1870.         MUIV_NListtree_Insert_ListNode_Root
  1871.             Use the root list.
  1872.  
  1873.         MUIV_NListtree_Insert_ListNode_Active
  1874.             Use the list of the active node.
  1875.  
  1876.         MUIV_NListtree_Insert_ListNode_ActiveFallback
  1877.             Use the list of the active node. If no list is active,
  1878.             an automatic fallback to the root list is done.
  1879.  
  1880.         MUIV_NListtree_Insert_ListNode_LastInserted
  1881.             Insert entry in the list the last entry was inserted.
  1882.  
  1883.  
  1884.     prevtreenode -    The node which is the predecessor of the node
  1885.                     to insert.
  1886.  
  1887.         MUIV_NListtree_Insert_PrevNode_Head
  1888.             The entry will be inserted at the head of the list.
  1889.  
  1890.         MUIV_NListtree_Insert_PrevNode_Tail
  1891.             The entry will be inserted at the tail of the list.
  1892.  
  1893.         MUIV_NListtree_Insert_PrevNode_Active
  1894.             The entry will be inserted after the active node of
  1895.             the list. If no entry is active, the entry will be
  1896.             inserted at the tail.
  1897.  
  1898.         MUIV_NListtree_Insert_PrevNode_Sorted:
  1899.             The entry will be inserted using the defined sort hook.
  1900.  
  1901.     flags:
  1902.  
  1903.         MUIV_NListtree_Insert_Flag_Active
  1904.             The inserted entry will be set to active. This means the
  1905.             cursor is moved to the newly inserted entry. If the entry
  1906.             was inserted into a closed node, it will be opened.
  1907.  
  1908.         MUIV_NListtree_Insert_Flag_NextNode
  1909.             'prevtreenode' is the successor, not the predecessor.
  1910.  
  1911.  
  1912.    RESULT
  1913.  
  1914.     A pointer to the newly inserted entry.
  1915.  
  1916.  
  1917.    EXAMPLE
  1918.  
  1919.         // Insert an entry after the active one and make it active.
  1920.         DoMethod(obj, MUIM_NListtree_Insert, "Hello", NULL,
  1921.             MUIV_NListtree_Insert_ListNode_Active,
  1922.             MUIV_NListtree_Insert_PrevNode_Active,
  1923.             MUIV_NListtree_Insert_Flag_Active);
  1924.  
  1925.  
  1926.    NOTES
  1927.  
  1928.    BUGS
  1929.  
  1930.     Not implemented yet:
  1931.         MUIV_NListtree_Insert_Flag_NextNode
  1932.  
  1933.  
  1934.    SEE ALSO
  1935.  
  1936.     MUIA_NListtree_ConstructHook, MUIA_NListtree_CompareHook
  1937.  
  1938.  
  1939. NListtree.mcc/MUIM_NListtree_InsertStructtree.mcc/MUIM_NListtree_InsertStruct
  1940.  
  1941.    NAME
  1942.  
  1943.     MUIM_NListtree_InsertStruct -- Insert a structure such as a path
  1944.                                     using a delimiter. (V1)
  1945.  
  1946.  
  1947.    SYNOPSIS
  1948.  
  1949.     struct MUI_NListtree_TreeNode *treenode =
  1950.         DoMethod(obj, MUIM_NListtree_InsertStruct,
  1951.             STRPTR name, APTR userdata,
  1952.             STRPTR delimiter, ULONG flags);
  1953.  
  1954.  
  1955.    FUNCTION
  1956.  
  1957.     Insert a structure into the list such as a path or
  1958.     something similar (like ListtreeName.mcc does). The name is
  1959.     splitted using the supplied delimiter. For each name part a
  1960.     new tree entry is generated. If you have Images/aphaso/Image.mbr,
  1961.     the structure will be build es follows:
  1962.  
  1963.         + Images
  1964.           + aphaso
  1965.             - Image.mbr
  1966.  
  1967.     If a part of the structure is already present, it will be used to
  1968.     insert.
  1969.  
  1970.  
  1971.    INPUTS
  1972.  
  1973.     name -        Data containing (must not) one or more delimiters as
  1974.                 specified in delimiter (Images/aphaso/Image.mbr for
  1975.                 example).
  1976.  
  1977.     userdata -    Your personal data.
  1978.  
  1979.     delimiter -    The delimiter(s) used in the name field (":/" or
  1980.                 something).
  1981.  
  1982.     flags:
  1983.  
  1984.         Use normal insert flags here (see there).
  1985.  
  1986.  
  1987.    RESULT
  1988.  
  1989.     A pointer to the last instance of newly inserted entries.
  1990.  
  1991.  
  1992.    EXAMPLE
  1993.  
  1994.         // Insert a directory path.
  1995.        path = MyGetPath( lock );
  1996.  
  1997.         DoMethod(obj, MUIM_NListtree_InsertStruct,
  1998.             path, NULL, ":/", 0);
  1999.  
  2000.  
  2001.    NOTES
  2002.  
  2003.    BUGS
  2004.  
  2005.    SEE ALSO
  2006.  
  2007.     MUIA_NListtree_Insert
  2008.  
  2009.  
  2010. NListtree.mcc/MUIM_NListtree_Move           NListtree.mcc/MUIM_NListtree_Move
  2011.  
  2012.    NAME
  2013.  
  2014.     MUIM_NListtree_Move -- Move an entry to the specified position. (V1)
  2015.  
  2016.  
  2017.    SYNOPSIS
  2018.  
  2019.     DoMethod(obj, MUIM_NListtree_Move,
  2020.         struct MUI_NListtree_TreeNode *oldlistnode,
  2021.         struct MUI_NListtree_TreeNode *oldtreenode,
  2022.         struct MUI_NListtree_TreeNode *newlistnode,
  2023.         struct MUI_NListtree_TreeNode *newtreenode,
  2024.         ULONG flags);
  2025.  
  2026.  
  2027.    FUNCTION
  2028.  
  2029.     Move an entry to the position after a defined node.
  2030.  
  2031.  
  2032.    INPUTS
  2033.  
  2034.     oldlistnode -    Specify the node which list is used to find the
  2035.                     entry. The search is started at the head of this
  2036.                     list.
  2037.  
  2038.         MUIV_NListtree_Move_OldListNode_Root
  2039.             The root list is used as the starting point.
  2040.  
  2041.         MUIV_NListtree_Move_OldListNode_Active
  2042.             The active list (the list of the active node) is used as
  2043.             the starting point.
  2044.  
  2045.     oldtreenode -    Specify the node which should be moved.
  2046.  
  2047.         MUIV_NListtree_Move_OldTreeNode_Head
  2048.             The head of the list defined in 'oldlistnode' is moved.
  2049.  
  2050.         MUIV_NListtree_Move_OldTreeNode_Tail
  2051.             The tail of the list defined in 'oldlistnode' is moved.
  2052.  
  2053.         MUIV_NListtree_Move_OldTreeNode_Active
  2054.             The active node is moved.
  2055.  
  2056.     newlistnode -    Specify the node which list is used to find the
  2057.                     entry. The search is started at the head of this
  2058.                     list.
  2059.  
  2060.         MUIV_NListtree_Move_NewListNode_Root
  2061.             The root list.
  2062.  
  2063.         MUIV_NListtree_Move_NewListNode_Active
  2064.             The list of the active node.
  2065.  
  2066.     newtreenode -    This node is the predecessor of the entry which is
  2067.                     inserted.
  2068.  
  2069.         MUIV_NListtree_Move_NewTreeNode_Head
  2070.             The node is moved to the head of the list defined in
  2071.             'newlistnode'.
  2072.  
  2073.         MUIV_NListtree_Move_NewTreeNode_Tail
  2074.             The node is moved to the tail of the list defined in
  2075.             'newlistnode'.
  2076.  
  2077.         MUIV_NListtree_Move_NewTreeNode_Active:
  2078.             The node is moved to one entry after the active node.
  2079.  
  2080.         MUIV_NListtree_Move_NewTreeNode_Sorted:
  2081.             The node is moved to the list using the sort hook.
  2082.  
  2083.     flags -        Some flags to adjust moving.
  2084.  
  2085.         MUIV_NListtree_Move_Flag_KeepStructure
  2086.             The full tree structure from the selected entry to
  2087.             the root list is moved (created at destination).
  2088.  
  2089.  
  2090.    RESULT
  2091.  
  2092.    EXAMPLE
  2093.  
  2094.         // Move an entry to the head of another list-node.
  2095.         DoMethod(obj,
  2096.             MUIV_NListtree_Move_OldListNode_Active,
  2097.             MUIV_NListtree_Move_OldTreeNode_Active,
  2098.             somelistmode,
  2099.             MUIV_NListtree_Move_NewTreeNode_Head,
  2100.             0);
  2101.  
  2102.  
  2103.    NOTES
  2104.  
  2105.    BUGS
  2106.  
  2107.    SEE ALSO
  2108.  
  2109.     MUIM_NListtree_Insert, MUIM_NListtree_Remove,
  2110.     MUIM_NListtree_Exchange, MUIA_NListtree_CompareHook,
  2111.     MUIM_NListtree_Copy
  2112.  
  2113. NListtree.mcc/MUIM_NListtree_MultiTest NListtree.mcc/MUIM_NListtree_MultiTest
  2114.  
  2115.    NAME
  2116.  
  2117.     MUIM_NListtree_MultiTest -- Called for every selection. (V1)
  2118.  
  2119.  
  2120.    SYNOPSIS
  2121.  
  2122.     DoMethodA(obj, MUIM_NListtree_MultiTest,
  2123.         struct MUIP_NListtree_MultiTest *multimessage);
  2124.  
  2125.  
  2126.    FUNCTION
  2127.  
  2128.     This method must not be called directly. It will be called by
  2129.     NListtree just before multiselection. You can overload it and
  2130.     return TRUE or FALSE whether you want the entry to be multi-
  2131.     selectable or not.
  2132.  
  2133.  
  2134.    INPUTS
  2135.  
  2136.    RESULT
  2137.  
  2138.    EXAMPLE
  2139.  
  2140.    NOTES
  2141.  
  2142.    BUGS
  2143.  
  2144.    SEE ALSO
  2145.  
  2146.     MUIM_NListtree_Select, MUIA_NListtree_MultiTest
  2147.  
  2148.  
  2149. NListtree.mcc/MUIM_NListtree_NextSelectedtree.mcc/MUIM_NListtree_NextSelected
  2150.  
  2151.    NAME
  2152.  
  2153.     MUIM_NListtree_NextSelected -- Get next selected tree node. (V1)
  2154.  
  2155.  
  2156.    SYNOPSIS
  2157.  
  2158.     DoMethod(obj, MUIM_NListtree_NextSelected,
  2159.         struct MUI_NListtree_TreeNode **treenode);
  2160.  
  2161.  
  2162.    FUNCTION
  2163.  
  2164.     Iterate through the selected entries of a tree. This method steps
  2165.     through the contents of a (multi select) list tree and returns
  2166.     every entry that is currently selected. When no entry is selected
  2167.     but an entry is active, only the active entry will be returned.
  2168.  
  2169.     This behaviour will result in not returning the active entry when
  2170.     you have some other selected entries somewhere in your list. Since
  2171.     the active entry just acts as some kind of cursor mark, this seems
  2172.     to be the only sensible possibility to handle multi selection
  2173.     together with keyboard control.
  2174.  
  2175.  
  2176.    INPUTS
  2177.  
  2178.     treenode -  A pointer to a pointer of struct MUI_NListtree_TreeNode
  2179.                 that will hold the returned entry. Must be set to
  2180.                 MUIV_NListtree_NextSelected_Start at start of iteration
  2181.                 and is set to MUIV_NListtree_NextSelected_End when
  2182.                 iteration is finished.
  2183.  
  2184.         MUIV_NListtree_NextSelected_Start    Set this to start iteration.
  2185.         MUIV_NListtree_NextSelected_End        Will be set to this, if
  2186.                                             last selected entry reached.
  2187.  
  2188.  
  2189.    RESULT
  2190.  
  2191.    EXAMPLE
  2192.  
  2193.     // Iterate through a list
  2194.     struct MUI_NListtree_TreeNode *treenode;
  2195.  
  2196.     treenode = MUIV_NListtree_NextSelected_Start;
  2197.  
  2198.     for (;;)
  2199.     {
  2200.         DoMethod(listtree, MUIM_NListtree_NextSelected, &treenode);
  2201.  
  2202.         if (treenode==MUIV_NListtree_NextSelected_End)
  2203.             break;
  2204.  
  2205.         printf("selected: %s\n", treenode->tn_Name);
  2206.     }
  2207.  
  2208.  
  2209.    NOTES
  2210.  
  2211.    BUGS
  2212.  
  2213.    SEE ALSO
  2214.  
  2215.     MUIM_NListtree_PrevSelected, MUIM_NListtree_Select
  2216.  
  2217.  
  2218. NListtree.mcc/MUIM_NListtree_Open           NListtree.mcc/MUIM_NListtree_Open
  2219.  
  2220.    NAME
  2221.  
  2222.     MUIM_NListtree_Open -- Open the specified tree node. (V1)
  2223.  
  2224.  
  2225.    SYNOPSIS
  2226.  
  2227.     DoMethod(obj, MUIM_NListtree_Open,
  2228.         struct MUI_NListtree_TreeNode *listnode,
  2229.         struct MUI_NListtree_TreeNode *treenode,
  2230.         ULONG flags);
  2231.  
  2232.  
  2233.    FUNCTION
  2234.  
  2235.     Opens a node in the listtree. To open a child, which isn't displayed,
  2236.     use 'MUIV_NListtree_Open_ListNode_Parent' to open all its parents, too.
  2237.  
  2238.     Only nodes can be opened.
  2239.  
  2240.  
  2241.    INPUTS
  2242.  
  2243.     listnode -    Specify the node which list is used to open the node.
  2244.     
  2245.         MUIV_NListtree_Open_ListNode_Root
  2246.             The root list is used.
  2247.  
  2248.         MUIV_NListtree_Open_ListNode_Parent
  2249.             Indicates, that all the parents of the node specified in
  2250.             'treenode' should be opened too.
  2251.  
  2252.         MUIV_NListtree_Open_ListNode_Active
  2253.             The list of the active node is used.
  2254.  
  2255.     treenode -    The node to open.
  2256.  
  2257.         MUIV_NListtree_Open_TreeNode_Head
  2258.             Opens the head node of the list.
  2259.  
  2260.         MUIV_NListtree_Open_TreeNode_Tail
  2261.             Opens the tail node of the list.
  2262.  
  2263.         MUIV_NListtree_Open_TreeNode_Active
  2264.             The active node will be opened.
  2265.  
  2266.         MUIV_NListtree_Open_TreeNode_All:
  2267.             All the nodes of the list are opened.
  2268.  
  2269.  
  2270.    RESULT
  2271.  
  2272.    EXAMPLE
  2273.         // Open the active list.
  2274.         DoMethod(obj, MUIM_NListtree_Open,
  2275.             MUIV_NListtree_Open_ListNode_Active,
  2276.             MUIV_NListtree_Open_TreeNode_Active, 0);
  2277.  
  2278.  
  2279.    NOTES
  2280.  
  2281.    BUGS
  2282.  
  2283.    SEE ALSO
  2284.     MUIM_NListtree_Close
  2285.  
  2286.  
  2287. NListtree.mcc/MUIM_NListtree_PrevSelectedtree.mcc/MUIM_NListtree_PrevSelected
  2288.  
  2289.    NAME
  2290.  
  2291.     MUIM_NListtree_PrevSelected -- Get previous selected tree node. (V1)
  2292.  
  2293.  
  2294.    SYNOPSIS
  2295.  
  2296.     DoMethod(obj, MUIM_NListtree_PrevSelected,
  2297.         struct MUI_NListtree_TreeNode **treenode);
  2298.  
  2299.  
  2300.    FUNCTION
  2301.  
  2302.     Iterate reverse through the selected entries of a tree. This method
  2303.     steps through the contents of a (multi select) list tree and returns
  2304.     every entry that is currently selected. When no entry is selected
  2305.     but an entry is active, only the active entry will be returned.
  2306.  
  2307.     This behaviour will result in not returning the active entry when
  2308.     you have some other selected entries somewhere in your list. Since
  2309.     the active entry just acts as some kind of cursor mark, this seems
  2310.     to be the only sensible possibility to handle multi selection
  2311.     together with keyboard control.
  2312.  
  2313.  
  2314.    INPUTS
  2315.  
  2316.     treenode -  A pointer to a pointer of struct MUI_NListtree_TreeNode
  2317.                 that will hold the returned entry. Must be set to
  2318.                 MUIV_NListtree_PrevSelected_Start at start of iteration
  2319.                 an the end and is set to MUIV_NListtree_PrevSelected_End
  2320.                 when first selected entry is reached and iteration is
  2321.                 finished.
  2322.  
  2323.         MUIV_NListtree_PrevSelected_Start    Set this to start iteration.
  2324.         MUIV_NListtree_PrevSelected_End        Will be set to this, if
  2325.                                             last selected entry reached.
  2326.  
  2327.  
  2328.    RESULT
  2329.  
  2330.    EXAMPLE
  2331.  
  2332.     // Iterate through a list (reverse)
  2333.     struct MUI_NListtree_TreeNode *treenode;
  2334.  
  2335.     treenode = MUIV_NListtree_PrevSelected_Start;
  2336.  
  2337.     for (;;)
  2338.     {
  2339.         DoMethod(listtree, MUIM_NListtree_PrevSelected, &treenode);
  2340.  
  2341.         if (treenode==MUIV_NListtree_PrevSelected_End)
  2342.             break;
  2343.  
  2344.         printf("selected: %s\n", treenode->tn_Name);
  2345.     }
  2346.  
  2347.  
  2348.    NOTES
  2349.  
  2350.    BUGS
  2351.  
  2352.    SEE ALSO
  2353.  
  2354.     MUIM_NListtree_NextSelected, MUIM_NListtree_Select
  2355.  
  2356.  
  2357. NListtree.mcc/MUIM_NListtree_Redraw       NListtree.mcc/MUIM_NListtree_Redraw
  2358.  
  2359.    NAME    
  2360.  
  2361.     MUIM_NListtree_Redraw -- Redraw the specified tree node. (V1)
  2362.  
  2363.  
  2364.    SYNOPSIS
  2365.  
  2366.     DoMethod(obj, MUIM_NListtree_Redraw,
  2367.         struct MUI_NListtree_TreeNode *treenode, ULONG flags);
  2368.  
  2369.  
  2370.    FUNCTION
  2371.  
  2372.     Redraw the specified entry. See special values for completeness.
  2373.  
  2374.  
  2375.    INPUTS
  2376.  
  2377.     treenode -    The tree node to be redrawn.
  2378.  
  2379.         MUIV_NListtree_Redraw_Active
  2380.             Redraw the active entry.
  2381.  
  2382.         MUIV_NListtree_Redraw_All
  2383.             Redraw the complete visible tree.
  2384.  
  2385.  
  2386.     flags:
  2387.  
  2388.         MUIV_NListtree_Redraw_Flag_Nr
  2389.             The data specified in 'treenode' is the entry number,
  2390.             not the tree node itself.
  2391.  
  2392.  
  2393.    RESULT
  2394.  
  2395.    EXAMPLE
  2396.  
  2397.         // Redraw the active entry.
  2398.         DoMethod(obj, MUIM_NListtree_Redraw,
  2399.             MUIV_NListtree_Redraw_Active, 0);
  2400.  
  2401.  
  2402.    NOTES
  2403.  
  2404.    BUGS
  2405.  
  2406.    SEE ALSO
  2407.  
  2408.     MUIM_NList_TestPos
  2409.  
  2410.  
  2411. NListtree.mcc/MUIM_NListtree_Remove       NListtree.mcc/MUIM_NListtree_Remove
  2412.  
  2413.    NAME
  2414.  
  2415.     MUIM_NListtree_Remove -- Remove the specified entry(ies). (V1)
  2416.  
  2417.  
  2418.    SYNOPSIS
  2419.  
  2420.     DoMethod(obj, MUIM_NListtree_Remove,
  2421.         struct MUI_NListtree_TreeNode *listnode,
  2422.         struct MUI_NListtree_TreeNode *treenode,
  2423.         ULONG flags);
  2424.  
  2425.  
  2426.    FUNCTION
  2427.  
  2428.     Removes a node or nodes from the listtree. When the active entry
  2429.     is removed, the successor will become active.
  2430.  
  2431.  
  2432.    INPUTS
  2433.  
  2434.     listnode -    Specify the node which list is used to find the entry
  2435.                 which should be removed. The search is started at the
  2436.                 begin of this list.
  2437.  
  2438.         MUIV_NListtree_Remove_ListNode_Root
  2439.             The root list is used.
  2440.  
  2441.         MUIV_NListtree_Remove_ListNode_Active
  2442.             The list of the active node is used.
  2443.  
  2444.  
  2445.     treenode -    The node which should be removed. If there are children
  2446.                 of this node, they are also removed.
  2447.  
  2448.         MUIV_NListtree_Remove_TreeNode_Head
  2449.             The head of the list defined in 'listnode' is removed.
  2450.  
  2451.         MUIV_NListtree_Remove_TreeNode_Tail
  2452.             The tail of the list defined in 'listnode' is removed.
  2453.  
  2454.         MUIV_NListtree_Remove_TreeNode_Active
  2455.             Removes the active node.
  2456.  
  2457.         MUIV_NListtree_Remove_TreeNode_All
  2458.             All nodes of the list which is specified in 'listnode',
  2459.             are removed. Other nodes of parent lists are not
  2460.             affected.
  2461.  
  2462.         MUIV_NListtree_Remove_TreeNode_Selected
  2463.             All selected nodes are removed.
  2464.  
  2465.    RESULT
  2466.  
  2467.    EXAMPLE
  2468.  
  2469.         // Remove the active entry if delete is pressed!
  2470.         DoMethod(bt_delete, MUIM_Notify, MUIA_Pressed, FALSE,
  2471.             lt_list, 4, MUIM_NListtree_Remove,
  2472.             MUIV_NListtree_Remove_ListNode_Active,
  2473.             MUIV_NListtree_Remove_TreeNode_Active, 0);
  2474.  
  2475.  
  2476.    NOTES
  2477.  
  2478.    BUGS
  2479.  
  2480.    SEE ALSO
  2481.  
  2482.     MUIM_NListtree_Insert, MUIA_NListtree_DestructHook,
  2483.     MUIM_NList_Active
  2484.  
  2485.  
  2486. NListtree.mcc/MUIM_NListtree_Rename       NListtree.mcc/MUIM_NListtree_Rename
  2487.  
  2488.    NAME
  2489.  
  2490.     MUIM_NListtree_Rename -- Rename the specified node. (V1)
  2491.  
  2492.  
  2493.    SYNOPSIS
  2494.  
  2495.     struct MUI_NListtree_TreeNode *treenode =
  2496.         DoMethod(obj, MUIM_NListtree_Rename,
  2497.             struct MUI_NListtree_TreeNode *treenode,
  2498.             STRPTR newname, ULONG flags);
  2499.  
  2500.  
  2501.    FUNCTION
  2502.  
  2503.     Rename the specified node.
  2504.  
  2505.     If you want to rename the tn_User field (see flags below), the construct
  2506.     and destruct hooks are used!
  2507.     If you have not specified these hooks, only the pointers will be copied.
  2508.  
  2509.  
  2510.    INPUTS
  2511.  
  2512.     treenode -    Specifies the node which should be renamed.
  2513.  
  2514.         MUIV_NListtree_Rename_TreeNode_Active:
  2515.             Rename the active tree node.
  2516.  
  2517.     newname -    The new name or pointer.
  2518.  
  2519.     flags:
  2520.  
  2521.         MUIV_NListtree_Rename_Flag_User
  2522.             The tn_User field is renamed.
  2523.  
  2524.         MUIV_NListtree_Rename_Flag_NoRefresh
  2525.             The list entry will not be refreshed.
  2526.  
  2527.  
  2528.    RESULT
  2529.  
  2530.     Returns the pointer of the renamed tree node.
  2531.  
  2532.  
  2533.    EXAMPLE
  2534.  
  2535.         // Rename the active tree node.
  2536.         DoMethod(obj, MUIM_NListtree_Rename,
  2537.             MUIV_NListtree_Rename_TreeNode_Active,
  2538.             "Very new name", 0);
  2539.  
  2540.  
  2541.    NOTES
  2542.  
  2543.    BUGS
  2544.  
  2545.    SEE ALSO
  2546.  
  2547.     MUIA_NListtree_ConstructHook, MUIA_NListtree_DestructHook
  2548.  
  2549.  
  2550. NListtree.mcc/MUIM_NListtree_Select       NListtree.mcc/MUIM_NListtree_Select
  2551.  
  2552.    NAME
  2553.  
  2554.     MUIM_NListtree_Select -- Select the specified tree node. (V1)
  2555.  
  2556.  
  2557.    SYNOPSIS
  2558.  
  2559.     DoMethod(obj, MUIM_NListtree_Select,
  2560.         struct MUI_NListtree_TreeNode *treenode, LONG seltype,
  2561.         LONG selflags, LONG *state);
  2562.  
  2563.  
  2564.    FUNCTION
  2565.  
  2566.     Select or unselect a tree entry or ask an entry about its state.
  2567.     See special values for completeness.
  2568.  
  2569.  
  2570.    INPUTS
  2571.  
  2572.     treenode -    The tree node to be selected/unselected/asked.
  2573.  
  2574.         MUIV_NListtree_Select_Active    For the active entry.
  2575.         MUIV_NListtree_Select_All        For all entries.
  2576.         MUIV_NListtree_Select_Visible    For all visible entries.
  2577.  
  2578.     seltype -    Type of selection/unselection/ask
  2579.  
  2580.         MUIV_NListtree_Select_Off        Unselect entry.
  2581.         MUIV_NListtree_Select_On        Select entry.
  2582.         MUIV_NListtree_Select_Toggle    Toggle entries state.
  2583.         MUIV_NListtree_Select_Ask        Just ask about the state.
  2584.  
  2585.     selflags -    Some kind of specials.
  2586.  
  2587.         MUIV_NListtree_Select_Flag_Force
  2588.             Adding this flag to seltype forces the selection by
  2589.             bypassing the multi test hook.
  2590.  
  2591.     state -        Pointer to a longword. If not NULL, it will be filled
  2592.                 with the current selection state of the entry.
  2593.  
  2594.  
  2595.    RESULT
  2596.  
  2597.    EXAMPLE
  2598.  
  2599.         // Select the active entry.
  2600.         LONG retstate;
  2601.  
  2602.         DoMethod(obj, MUIM_NListtree_Select,
  2603.             MUIV_NListtree_Select_Active, MUIV_NListtree_Select_On,
  2604.             0, &retstate);
  2605.  
  2606.         // We must check this, because the multi test hook may
  2607.         // cancel our selection.
  2608.         if (retstate == MUIV_NListtree_Select_On) {
  2609.             ...
  2610.         }
  2611.  
  2612.  
  2613.    NOTES
  2614.  
  2615.     If ( treenode == MUIV_NListtree_Select_All ) and
  2616.     ( seltype == MUIV_NListtree_Select_Ask ), state will be filled
  2617.     with the total number of selected entries.
  2618.  
  2619.     NEW for final 18.6:
  2620.     If (treenode == MUIV_NListtree_Select_Active ) and
  2621.     ( seltype == MUIV_NListtree_Select_Ask ), state will be the
  2622.     active entry, if any, or NULL.
  2623.  
  2624.     If only the active entry is selected, has a cursor mark (see
  2625.     MUIM_NListtree_NextSelected for that), you will receive 0 as
  2626.     the number of selected entries.
  2627.  
  2628.  
  2629.    BUGS
  2630.  
  2631.    SEE ALSO
  2632.  
  2633.     MUIA_NListtree_MultiTestHook
  2634.  
  2635.  
  2636. NListtree.mcc/MUIM_NListtree_Sort           NListtree.mcc/MUIM_NListtree_Sort
  2637.  
  2638.    NAME
  2639.  
  2640.     MUIM_NListtree_Sort -- Sort the specified list node. (V1)
  2641.  
  2642.  
  2643.    SYNOPSIS
  2644.  
  2645.     DoMethod(obj, MUIM_NListtree_Sort,
  2646.         struct MUI_NListtree_TreeNode *listnode,
  2647.         ULONG flags);
  2648.  
  2649.  
  2650.    FUNCTION
  2651.  
  2652.     Sort the specified list node using the sort hook.
  2653.  
  2654.  
  2655.    INPUTS
  2656.  
  2657.     listnode -    List node to sort.
  2658.  
  2659.         MUIV_NListtree_Sort_ListNode_Root
  2660.             Sort the root list.
  2661.  
  2662.         MUIV_NListtree_Sort_ListNode_Active
  2663.             Sort the list node of the active entry.
  2664.  
  2665.         MUIV_NListtree_Sort_TreeNode_Active
  2666.             Sorts the childs of the active entry if a list.
  2667.  
  2668.     flags -        Control the part where sorting is done.
  2669.  
  2670.         MUIV_NListtree_Sort_Flag_RecursiveOpen
  2671.             Sort the list recursive. All open child nodes of the
  2672.             node specified in 'listnode' will be sorted too.
  2673.  
  2674.         MUIV_NListtree_Sort_Flag_RecursiveAll
  2675.             Sort the list recursive with ALL child nodes of the
  2676.             node specified in 'listnode'.
  2677.  
  2678.    RESULT
  2679.  
  2680.    EXAMPLE
  2681.  
  2682.         // Sort the list of the active node.
  2683.         DoMethod(obj, MUIM_NListtree_Sort,
  2684.             MUIV_NListtree_Sort_ListNode_Active, 0);
  2685.  
  2686.    NOTES
  2687.  
  2688.    BUGS
  2689.  
  2690.    SEE ALSO
  2691.  
  2692.     MUIA_NListtree_SortHook
  2693.  
  2694. NListtree.mcc/MUIM_NListtree_TestPos     NListtree.mcc/MUIM_NListtree_TestPos
  2695.  
  2696.    NAME
  2697.  
  2698.     MUIM_NListtree_TestPos -- Get information about entry at x/y pos. (V1)
  2699.  
  2700.  
  2701.    SYNOPSIS
  2702.  
  2703.     DoMethod(obj, MUIM_NListtree_TestPos, LONG xpos, LONG ypos,
  2704.         struct MUI_NListtree_TestPos_Result *testposresult);
  2705.  
  2706.  
  2707.    FUNCTION
  2708.  
  2709.     Find out some information about the currently displayed entry at a
  2710.     certain position (x/y-pos).
  2711.  
  2712.     This is very useful for Drag&Drop operations.
  2713.  
  2714.  
  2715.    INPUTS
  2716.  
  2717.     xpos -            X-position.
  2718.     ypos -            Y-position.
  2719.     testposresult -    Pointer to a valid MUI_NListtree_TestPos_Result
  2720.                     structure.
  2721.  
  2722.  
  2723.    RESULT
  2724.  
  2725.     tpr_TreeNode -    The tree node under the requested position or NULL
  2726.                     if there is no entry displayed.
  2727.  
  2728.     The tpr_Type field contains detailed information about the relative
  2729.     position:
  2730.  
  2731.         MUIV_NListtree_TestPos_Result_Above
  2732.         MUIV_NListtree_TestPos_Result_Below
  2733.         MUIV_NListtree_TestPos_Result_Onto
  2734.         MUIV_NListtree_TestPos_Result_Sorted
  2735.  
  2736.     tpr_Column -    The column unter the specified position or -1 if
  2737.                     no valid column.
  2738.  
  2739.  
  2740.    EXAMPLE
  2741.  
  2742.         // Entry under the cursor?
  2743.         struct MUI_NListtree_TestPos_Result tpres;
  2744.  
  2745.         DoMethod(obj, MUIM_NListtree_TestPos, msg->imsg->MouseX,
  2746.             msg->imsg->MouseY, &tpres);
  2747.  
  2748.         if ( tpres.tpr_Entry != NULL )
  2749.         {
  2750.             // Do something very special here...
  2751.         }    
  2752.  
  2753.  
  2754.    NOTES
  2755.  
  2756.    BUGS
  2757.  
  2758.    SEE ALSO
  2759.  
  2760.     MUIM_NList_TestPos
  2761.  
  2762.  
  2763.