home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 13 / AACD13.ISO / AACD / Programming / MCC_NListtree / Developer / AutoDocs / MCC_NListtree.doc next >
Text File  |  2000-08-01  |  54KB  |  2,129 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_DestructHook
  11. NListtree.mcc/MUIA_NListtree_DisplayHook
  12. NListtree.mcc/MUIA_NListtree_DoubleClick
  13. NListtree.mcc/MUIA_NListtree_DragDropSort
  14. NListtree.mcc/MUIA_NListtree_DupNodeName
  15. NListtree.mcc/MUIA_NListtree_EmptyNodes
  16. NListtree.mcc/MUIA_NListtree_FindNameHook
  17. NListtree.mcc/MUIA_NListtree_Format
  18. NListtree.mcc/MUIA_NListtree_MultiSelect
  19. NListtree.mcc/MUIA_NListtree_MultiTestHook
  20. NListtree.mcc/MUIA_NListtree_OpenHook
  21. NListtree.mcc/MUIA_NListtree_Quiet
  22. NListtree.mcc/MUIA_NListtree_Title
  23. NListtree.mcc/MUIA_NListtree_TreeColumn
  24. NListtree.mcc/MUIM_NListtree_Close
  25. NListtree.mcc/MUIM_NListtree_Copy
  26. NListtree.mcc/MUIM_NListtree_Exchange
  27. NListtree.mcc/MUIM_NListtree_FindName
  28. NListtree.mcc/MUIM_NListtree_GetEntry
  29. NListtree.mcc/MUIM_NListtree_GetNr
  30. NListtree.mcc/MUIM_NListtree_Insert
  31. NListtree.mcc/MUIM_NListtree_Move
  32. NListtree.mcc/MUIM_NListtree_MultiTest
  33. NListtree.mcc/MUIM_NListtree_NextSelected
  34. NListtree.mcc/MUIM_NListtree_Open
  35. NListtree.mcc/MUIM_NListtree_Redraw
  36. NListtree.mcc/MUIM_NListtree_Remove
  37. NListtree.mcc/MUIM_NListtree_Rename
  38. NListtree.mcc/MUIM_NListtree_Select
  39. NListtree.mcc/MUIM_NListtree_Sort
  40. NListtree.mcc/MUIM_NListtree_TestPos
  41. NListtree.mcc/--background--                     NListtree.mcc/--background--
  42.  
  43.     There are two possible entry-types in a NListtree class list:
  44.     Leaves and nodes. Leaves are simple entries which have no special
  45.     features except they are holding some data. Nodes are almost
  46.     the same type, holding data too, but having a list attached
  47.     where you can simply add other entries which can be again leaves
  48.     or nodes.
  49.  
  50.     Every node is structured as follows:
  51.  
  52.         struct MUI_NListtree_TreeNode {
  53.  
  54.             struct    MinNode    tn_Node;
  55.             STRPTR    tn_Name;
  56.             UWORD    tn_Flags;
  57.             APTR    tn_User;
  58.         };
  59.  
  60.     It contains a name field tn_Name, flags tn_Flags and a pointer to
  61.     user data tn_User.
  62.  
  63.     The tn_Flags field can hold the following flags:
  64.  
  65.         TNF_LIST        The node contains a list where other nodes
  66.                         can be inserted.
  67.  
  68.         TNF_OPEN        The list node is open, sub nodes are displayed.
  69.  
  70.         TNF_FROZEN        The node doesn't react on doubleclick or
  71.                         open/close by the user.
  72.  
  73.         TNF_NOSIGN        The indicator of list nodes isn't shown.
  74.  
  75.         TNF_SELECTED    The entry is currently selected.
  76.  
  77.     These flags, except TNF_SELECTED, can be used in
  78.     MUIM_NListtree_Insert at creation time. They will be passed to
  79.     the newly created entry. Also you can do a quick check about the
  80.     state and kind of each entry. But - NEVER EVER - modify any flag
  81.     yourself or NListtree will crash. Be warned!
  82.  
  83.     *********************************************************************
  84.         THE ABOVE STRUCT IS READ-ONLY!! NEVER CHANGE ANY ENTRY OF THIS
  85.         STRUCTURE DIRECTLY NOR THINK ABOUT THE CONTENTS OF ANY PRIVATE
  86.                         FIELD OR YOU WILL DIE IN HELL!
  87.     *********************************************************************
  88.  
  89.  
  90.     You can create very complex tree structures. NListtree only uses
  91.     one list which holds all information needed and has no extra
  92.     display list like other list tree classes ;-)
  93.  
  94.     The tree nodes can be inserted and removed, sorted, moved, exchanged,
  95.     renamed  or multi  selected.  To sort you can also  drag&drop  them.
  96.     Modifications can be made in relation to the whole tree, to only one
  97.     level, to a sub-tree or to only one tree node.
  98.  
  99.     The user can control the listtree by the MUI keys, this means a node
  100.     is opened with "Right" and closed with "Left". Check your MUI prefs
  101.     for the specified keys.
  102.  
  103.     You can define which of the columns will react on double-clicking.
  104.     The node toggles its status from open or closed and vice versa.
  105.  
  106.  
  107.     Drag&Drop capabilities:
  108.  
  109.     If you set MUIA_NList_DragSortable to TRUE, the list tree will
  110.     become active for Drag&Drop. This means you can drag and drop
  111.     entries on the same list tree again. While dragging an indicator
  112.     shows where to drop.
  113.  
  114.         Drag a    Drop on        Result
  115.  
  116.         leaf    leaf        Exchange leaves.
  117.         node    leaf        Nothing happens.
  118.         entry    closed node    Move entry, MUIA_NListtree_CompareHook is use
  119. d.
  120.         entry    open node    Move entry to defined position.
  121.  
  122.     You can not drop an entry on itself, nor can you drop an opened node on
  123.     any of its members.
  124.  
  125.     To exchange data with other objects, you have to create your own
  126.     subclass of NListtree class and react on the drag methods.
  127.  
  128.  
  129.     Author: Carsten Scholling    (c)1999-2000    email: cs@aphaso.de
  130.  
  131. NListtree.mcc/MUIA_NListtree_Active       NListtree.mcc/MUIA_NListtree_Active
  132.  
  133.    NAME    
  134.  
  135.     MUIA_NListtree_Active -- [.SG], struct MUI_NListtree_TreeNode *
  136.  
  137.  
  138.    SPECIAL VALUES
  139.  
  140.         MUIV_NListtree_Active_Off
  141.         MUIV_NListtree_Active_Parent
  142.         MUIV_NListtree_Active_First
  143.         MUIV_NListtree_Active_FirstVisible
  144.         MUIV_NListtree_Active_LastVisible
  145.  
  146.  
  147.    FUNCTION
  148.  
  149.     Setting this attribute will move the cursor to the defined tree node
  150.     if it is visible. If the node is in an opened tree the listview is
  151.     scrolling into the visible area. Setting MUIV_NListtree_Active_Off will
  152.     vanish the cursor.
  153.     
  154.     MUIV_NListtree_Active_First/FirstVisible/LastVisible are special values
  155.     for activating the lists first or the top/bottom visible entry.
  156.  
  157.     See MUIA_NListtree_AutoVisible for special activation features.
  158.  
  159.     If this attribute is read it returns the active tree node. The result
  160.     is MUIV_NListtree_Active_Off if there is no active entry.
  161.  
  162.  
  163.    NOTIFICATIONS
  164.  
  165.     You can create a notification on MUIA_NListtree_Active. The
  166.     TriggerValue is the active tree node.
  167.  
  168.  
  169.    SEE ALSO
  170.  
  171.     MUIA_NListtree_AutoVisible, MUIA_NList_First, MUIA_NList_Visible,
  172.     MUIA_NListtree_ActiveList
  173.  
  174. NListtree.mcc/MUIA_NListtree_ActiveListListtree.mcc/MUIA_NListtree_ActiveList
  175.  
  176.    NAME    
  177.  
  178.     MUIA_NListtree_ActiveList -- [..G], struct MUI_NListtree_TreeNode *
  179.  
  180.  
  181.    SPECIAL VALUES
  182.  
  183.         MUIV_NListtree_ActiveList_Off
  184.  
  185.  
  186.    FUNCTION
  187.  
  188.     If this attribute is read it returns the active list node. The
  189.     active list node is always the parent of the active entry.
  190.     The result is MUIV_NListtree_ActiveList_Off if there is no
  191.     active list (when there is no active entry).
  192.  
  193.  
  194.    NOTIFICATIONS
  195.  
  196.     You can create notifications on MUIA_NListtree_ActiveList. The
  197.     TriggerValue is the active list node.
  198.  
  199.  
  200.    SEE ALSO
  201.  
  202.     MUIA_NListtree_Active
  203.  
  204. NListtree.mcc/MUIA_NListtree_AutoVisiblesttree.mcc/MUIA_NListtree_AutoVisible
  205.  
  206.    NAME
  207.  
  208.     MUIA_NListtree_AutoVisible -- [ISG], struct MUI_NListtree_TreeNode *
  209.  
  210.  
  211.    SPECIAL VALUES
  212.  
  213.         MUIV_NListtree_AutoVisible_Off
  214.         MUIV_NListtree_AutoVisible_Normal
  215.         MUIV_NListtree_AutoVisible_FirstOpen
  216.         MUIV_NListtree_AutoVisible_Expand
  217.  
  218.  
  219.    FUNCTION
  220.  
  221.     Set this to make your list automatically jump to the active
  222.     entry.
  223.  
  224.         MUIV_NListtree_AutoVisible_Off:
  225.             The display does NOT scroll the active entry into the
  226.             visible area.
  227.  
  228.         MUIV_NListtree_AutoVisible_Normal:
  229.             This will scroll the active entry into the visible area
  230.             if it is visible (entry is a member of an open node).
  231.  
  232.         MUIV_NListtree_AutoVisible_FirstOpen:
  233.             Nodes are not opened, but the first open parent node of
  234.             the active entry is scrolled into the visible area if the
  235.             active entry is not visible.
  236.  
  237.         MUIV_NListtree_AutoVisible_Expand:
  238.             All parent nodes are opened until the first open node is
  239.             reached and the active entry will be scrolled into the
  240.             visible area.
  241.  
  242.  
  243.    NOTIFICATIONS
  244.  
  245.  
  246.    SEE ALSO
  247.  
  248.     MUIA_NListtree_Active, MUIA_NList_AutoVisible
  249.  
  250. NListtree.mcc/MUIA_NListtree_CloseHook NListtree.mcc/MUIA_NListtree_CloseHook
  251.  
  252.    NAME    
  253.  
  254.     MUIA_NListtree_CloseHook -- [IS.], struct Hook *
  255.  
  256.  
  257.    SPECIAL VALUES
  258.  
  259.  
  260.    FUNCTION
  261.  
  262.     The close hook is called after a list node is closed, then you can
  263.     change the list.
  264.     
  265.     The close hook will be called with the hook in A0, the object in A2
  266.     and a MUIP_NListtree_CloseMessage struct in A1 (see nlisttree_mcc.h).
  267.     
  268.     To remove the hook set this to NULL.
  269.  
  270.  
  271.    NOTIFICATION
  272.  
  273.  
  274.    SEE ALSO
  275.  
  276.     MUIA_NListtree_Open, MUIA_NListtree_CloseHook
  277.  
  278.  
  279. NListtree.mcc/MUIA_NListtree_CompareHooksttree.mcc/MUIA_NListtree_CompareHook
  280.  
  281.    NAME
  282.  
  283.     MUIA_NListtree_CompareHook -- [IS.], struct Hook *
  284.  
  285.  
  286.    SPECIAL VALUES
  287.  
  288.         MUIV_NListtree_CompareHook_Head
  289.         MUIV_NListtree_CompareHook_Tail
  290.         MUIV_NListtree_CompareHook_LeavesTop
  291.         MUIV_NListtree_CompareHook_LeavesMixed
  292.         MUIV_NListtree_CompareHook_LeavesBottom
  293.  
  294.  
  295.    FUNCTION
  296.  
  297.     Set this attribute to your own hook if you want to sort the entries in
  298.     the list tree by your own way.
  299.     
  300.     When you sort your list or parts of your list via MUIM_NListtree_Sort,
  301.     using the insert method with MUIV_NListtree_Insert_Sort or dropping an
  302.     entry on a closed node, this compare hook is called.
  303.  
  304.     There are some builtin compare hooks available, called:
  305.  
  306.         MUIV_NListtree_CompareHook_Head
  307.             Any entry is inserted at head of the list.
  308.  
  309.         MUIV_NListtree_CompareHook_Tail
  310.             Any entry is inserted at tail of the list.
  311.     
  312.         MUIV_NListtree_CompareHook_LeavesTop
  313.             Leaves are inserted at top of the list, nodes at bottom. They are
  314.             alphabetically sorted.
  315.  
  316.         MUIV_NListtree_CompareHook_LeavesMixed
  317.             The entries are only alphabetically sorted.
  318.     
  319.         MUIV_NListtree_CompareHook_LeavesBottom
  320.             Leaves are inserted at bottom of the list, nodes at top. They are
  321.             alphabetically sorted. This is default.
  322.     
  323.     The hook will be called with the hook in A0, the object in A2 and
  324.     a MUIP_NListtree_CompareMessage struct in A1 (see nlisttree_mcc.h). You
  325.     should return something like:
  326.     
  327.         <0    (TreeNode1 <  TreeNode2)
  328.          0    (TreeNode1 == TreeNode2)
  329.         >0    (TreeNode1 >  TreeNode2)
  330.  
  331.  
  332.    NOTIFICATION
  333.  
  334.  
  335.    SEE ALSO
  336.  
  337.     MUIA_NListtree_Insert, MUIM_DragDrop,
  338.     MUIA_NList_CompareHook
  339.  
  340.  
  341. NListtree.mcc/MUIA_NListtree_ConstructHookee.mcc/MUIA_NListtree_ConstructHook
  342.  
  343.    NAME
  344.  
  345.     MUIA_NListtree_ConstructHook -- [IS.], struct Hook *
  346.  
  347.  
  348.    SPECIAL VALUES
  349.  
  350.         MUIV_NListtree_ConstructHook_String
  351.  
  352.         MUIV_NListtree_ConstructHook_Flag_AutoCreate
  353.             If using the KeepStructure feature in MUIM_NListtree_Move or
  354.             MUIM_NListtree_Copy, this flag will be set when calling your
  355.             construct hook. Then you can react if your hook is not simply
  356.             allocating memory.
  357.  
  358.  
  359.    FUNCTION
  360.  
  361.     The construct hook is called whenever you add an entry to your
  362.     listtree. The pointer isn't inserted directly, the construct hook is
  363.     called and its result code is added.
  364.  
  365.     When an entry shall be removed the corresponding destruct hook is
  366.     called.
  367.  
  368.     The construct hook will be called with the hook in A0, the object in
  369.     A2 and a MUIP_NListtree_ConstructMessage struct in A1 (see nlisttree_mcc.
  370. h).
  371.     The message holds a standard kick 3.x memory pool pointer. If you want,
  372.     you can use the exec or amiga.lib functions for allocating memory
  373.     within this pool, but this is only an option.
  374.  
  375.     If the construct hook returns NULL, nothing will be added to the list.
  376.  
  377.     There is a builtin construct hook available called
  378.     MUIV_NListtree_ConstructHook_String. This expects that the 'User' data
  379.     in the treenode is a string, which is copied. Of course you have to
  380.     use MUIV_NListtree_DestructHook_String in this case!
  381.  
  382.     To remove the hook set this to NULL.
  383.  
  384.  
  385.    NOTIFICATION
  386.  
  387.  
  388.    SEE ALSO
  389.  
  390.     MUIA_NList_ConstructHook, MUIA_NListtree_DestructHook,
  391.     MUIA_NListtree_DisplayHook
  392.  
  393.  
  394. NListtree.mcc/MUIA_NListtree_DestructHooktree.mcc/MUIA_NListtree_DestructHook
  395.  
  396.    NAME
  397.  
  398.     MUIA_NListtree_DestructHook -- [IS.], struct Hook *
  399.  
  400.  
  401.    SPECIAL VALUES
  402.  
  403.         MUIV_NListtree_DestructHook_String
  404.  
  405.  
  406.    FUNCTION
  407.  
  408.     Set up a destruct hook for your listtree. The destruct hook is called
  409.     whenevere you remove an entry from the listtree. Here you can free memory
  410.     which was allocated by the construct hook before.
  411.  
  412.     The destruct hook will be called with the hook in A0, the object in
  413.     A2 and a MUIP_NListtree_DestructMessage struct in A1 (see nlisttree_mcc.h
  414. ).
  415.     The message holds a standard kick 3.x memory pool pointer. You must
  416.     use this pool when you have used it inside the construct hook to
  417.     allocate pooled memory.
  418.  
  419.     There is a builtin destruct hook available called
  420.     MUIV_NListtree_DestructHook_String. This expects that the 'User' data
  421.     in the treenode is a string and you have used
  422.     MUIV_NListtree_ConstructHook_String in the construct hook!
  423.  
  424.     To remove the hook set this to NULL.
  425.  
  426.  
  427.    NOTIFICATION
  428.  
  429.  
  430.    SEE ALSO
  431.  
  432.     MUIA_NList_ConstructHook, MUIA_NListtree_ConstructHook,
  433.     MUIA_NListtree_DisplayHook
  434.  
  435.  
  436. NListtree.mcc/MUIA_NListtree_DisplayHooksttree.mcc/MUIA_NListtree_DisplayHook
  437.  
  438.    NAME
  439.  
  440.     MUIA_NListtree_DisplayHook -- [IS.],
  441.  
  442.  
  443.    SPECIAL VALUES
  444.  
  445.  
  446.    FUNCTION
  447.  
  448.     You have to supply a display hook to specify what should be shown in
  449.     the listview, otherwise only the name of the nodes is displayed.
  450.     
  451.     The display hook will be called with the hook in A0, the object in
  452.     A2 and a MUIP_NListtree_DisplayMessage struct in A1 (see nlisttree_mcc.h)
  453. .
  454.  
  455.     The structure holds a pointer to a string array containing as many
  456.     entries as your listtree may have columns. You have to fill this
  457.     array with the strings you want to display. Check out that the array
  458.     pointer of the tree column isn't used or set to NULL, if the normal
  459.     name of the node should appear.
  460.  
  461.     You can set the array pointer of the tree column to a string, which is
  462.     diplayed instead of the node name. You can use this to mark nodes.
  463.  
  464.     See MUIA_NList_Format for details about column handling.
  465.  
  466.     To remove the hook and use the internal default display hook set this
  467.     to NULL.
  468.  
  469.  
  470.    NOTIFICATION
  471.  
  472.  
  473.    SEE ALSO
  474.  
  475.     MUIA_NList_Format, MUIA_Text_Contents
  476.  
  477.  
  478. NListtree.mcc/MUIA_NListtree_DoubleClicksttree.mcc/MUIA_NListtree_DoubleClick
  479.  
  480.    NAME
  481.  
  482.     MUIA_NListtree_DoubleClick -- [ISG], ULONG
  483.  
  484.  
  485.    SPECIAL VALUES
  486.  
  487.         MUIV_NListtree_DoubleClick_Off
  488.         MUIV_NListtree_DoubleClick_All
  489.         MUIV_NListtree_DoubleClick_Tree
  490.  
  491.  
  492.    FUNCTION
  493.  
  494.     A doubleclick opens a node if it was closed, it is closed if the node
  495.     was open. You have to set the column which should do this.
  496.  
  497.     Normally only the column number is set here, but there are special
  498.     values:
  499.  
  500.         MUIV_NListtree_DoubleClick_Off:
  501.             A doubleclick is not handled.
  502.  
  503.         MUIV_NListtree_DoubleClick_All:
  504.             All columns reacts on a doubleclick.
  505.  
  506.         MUIV_NListtree_DoubleClick_Tree
  507.             Only a doubleclick on the defined tree column is recognized.
  508.  
  509.  
  510.    NOTIFICATION
  511.  
  512.     The TriggerValue of the notification is the tree node you have double-
  513.     clicked, you can GetAttr() MUIA_NListtree_DoubleClick for the column
  514.     number. The struct 'MUI_NListtree_TreeNode *' is used for trigger.
  515.  
  516.     The notification is done on leaves and on node columns, which are not
  517.     set in MUIA_NListtree_DoubleClick.
  518.  
  519.    SEE ALSO
  520.  
  521.  
  522. NListtree.mcc/MUIA_NListtree_DragDropSorttree.mcc/MUIA_NListtree_DragDropSort
  523.  
  524.    NAME
  525.  
  526.     MUIA_NListtree_DragDropSort -- [IS.], BOOL
  527.  
  528.  
  529.    SPECIAL VALUES
  530.  
  531.  
  532.    FUNCTION
  533.  
  534.     Setting this attribute to FALSE will disable the ability to sort the
  535.     list tree by drag & drop. Defaults to TRUE.
  536.  
  537.  
  538.    NOTIFICATION
  539.  
  540.  
  541.    SEE ALSO
  542.  
  543.  
  544.  
  545. NListtree.mcc/MUIA_NListtree_DupNodeNamesttree.mcc/MUIA_NListtree_DupNodeName
  546.  
  547.    NAME
  548.  
  549.     MUIA_NListtree_DupNodeName -- [IS.], BOOL
  550.  
  551.  
  552.    SPECIAL VALUES
  553.  
  554.  
  555.    FUNCTION
  556.  
  557.     If this attribute is set to FALSE the names of the node will not be
  558.     duplicated, only the string pointers are used. Be careful the strings
  559.     have to be valid everytime.
  560.  
  561.  
  562.    NOTIFICATION
  563.  
  564.  
  565.    SEE ALSO
  566.  
  567.  
  568.  
  569. NListtree.mcc/MUIA_NListtree_EmptyNodesListtree.mcc/MUIA_NListtree_EmptyNodes
  570.  
  571.    NAME
  572.  
  573.     MUIA_NListtree_EmptyNodes -- [IS.], BOOL
  574.  
  575.  
  576.    SPECIAL VALUES
  577.  
  578.  
  579.    FUNCTION
  580.  
  581.     Setting this attribute to TRUE will display all empty nodes as leaves,
  582.     this means no list indicator is shown. Nevertheless the entry is
  583.     handled like a node.
  584.  
  585.  
  586.    NOTIFICATION
  587.  
  588.  
  589.    SEE ALSO
  590.  
  591.  
  592.  
  593. NListtree.mcc/MUIA_NListtree_FindNameHooktree.mcc/MUIA_NListtree_FindNameHook
  594.  
  595.    NAME    
  596.  
  597.     MUIA_NListtree_FindNameHook -- [IS.], 
  598.  
  599.  
  600.    SPECIAL VALUES
  601.  
  602.         MUIV_NListtree_FindNameHook_CaseSensitive
  603.         MUIV_NListtree_FindNameHook_CaseInsensitive
  604.         MUIV_NListtree_FindNameHook_Part
  605.         MUIV_NListtree_FindNameHook_PartCaseInsensitive
  606.  
  607.  
  608.    FUNCTION
  609.  
  610.     You can install a FindName hook to specify your own search
  611.     criteria.
  612.     
  613.     The find name hook will be called with the hook in A0, the object in
  614.     A2 and a MUIP_NListtree_FindNameMessage struct in A1
  615.     (see nlisttree_mcc.h). It should return ~ 0 for entries which are
  616.     not matching the pattern and a value of 0 if a match.
  617.  
  618.     The find name message structure holds a pointer to a string
  619.     containing the name to search for and pointers to the name- and user-
  620.     field of the node which is currently processed.
  621.  
  622.     The MUIV_NListtree_FindNameHook_CaseSensitive will be used as default.
  623.  
  624.    NOTIFICATION
  625.  
  626.  
  627.    SEE ALSO
  628.  
  629.  
  630. NListtree.mcc/MUIA_NListtree_Format       NListtree.mcc/MUIA_NListtree_Format
  631.  
  632.    NAME
  633.  
  634.     MUIA_NListtree_Format -- [IS.], STRPTR
  635.  
  636.  
  637.    SPECIAL VALUES
  638.  
  639.  
  640.    FUNCTION
  641.  
  642.     Same as MUIA_NList_Format, but one column is reserved for the tree
  643.     indicators and the names of the nodes.
  644.     
  645.     For further detailed information see MUIA_NList_Format!
  646.  
  647.  
  648.    NOTIFICATION
  649.  
  650.  
  651.    SEE ALSO
  652.  
  653.     MUIA_NList_Format, MUIA_NListtree_DisplayHook,
  654.     MUIA_Text_Contents
  655.  
  656.  
  657. NListtree.mcc/MUIA_NListtree_MultiSelectsttree.mcc/MUIA_NListtree_MultiSelect
  658.  
  659.    NAME
  660.  
  661.     MUIA_NListtree_MultiSelect -- [I..],
  662.  
  663.  
  664.    SPECIAL VALUES
  665.  
  666.         MUIV_NListtree_MultiSelect_None
  667.         MUIV_NListtree_MultiSelect_Default
  668.         MUIV_NListtree_MultiSelect_Shifted
  669.         MUIV_NListtree_MultiSelect_Always
  670.  
  671.         MUIV_NListtree_MultiSelect_Flag_AutoSelectChilds
  672.  
  673.  
  674.    FUNCTION
  675.  
  676.     Four possibilities exist for a listviews multi select
  677.     capabilities:
  678.  
  679.         MUIV_NListtree_MultiSelect_None:
  680.             The list tree cannot multiselect at all.
  681.  
  682.         MUIV_NListtree_MultiSelect_Default:
  683.             The multi select type (with or without shift)
  684.             depends on the users preferences setting.
  685.  
  686.         MUIV_NListtree_MultiSelect_Shifted:
  687.             Overrides the users prefs, multi selecting only
  688.             together with shift key.
  689.  
  690.         MUIV_NListtree_MultiSelect_Always:
  691.             Overrides the users prefs, multi selecting
  692.             without shift key.
  693.  
  694.  
  695.    NOTIFICATION
  696.  
  697.     NOTES
  698.  
  699.     Multi selection is highly experimental for now. Please report
  700.     bugs or suggestions whenever possible.
  701.     Also ideas about other selection methods are very welcome.
  702.  
  703.  
  704.    SEE ALSO
  705.  
  706.     MUIA_NListtree_MultiTestHook, MUIM_NListtree_MultiSelect
  707.  
  708.  
  709. NListtree.mcc/MUIA_NListtree_MultiTestHookee.mcc/MUIA_NListtree_MultiTestHook
  710.  
  711.    NAME
  712.  
  713.     MUIA_NListtree_MultiTestHook -- [IS.], struct Hook *
  714.  
  715.  
  716.    SPECIAL VALUES
  717.  
  718.  
  719.    FUNCTION
  720.  
  721.     If you plan to have a multi selecting list tree but not
  722.     all of your entries are actually multi selectable, you
  723.     can supply a MUIA_NListtree_MultiTestHook.
  724.  
  725.     The multi test hook will be called with the hook in A0, the object
  726.     in A2 and a MUIP_NListtree_MultiTestMessage struct in A1 (see
  727.     nlisttree_mcc.h) and should return TRUE if the entry is multi
  728.     selectable, FALSE otherwise.
  729.  
  730.     To remove the hook set this to NULL.
  731.  
  732.  
  733.    NOTIFICATION
  734.  
  735.  
  736.    SEE ALSO
  737.  
  738.     MUIA_NListtree_ConstructHook, MUIA_NListtree_DestructHook
  739.  
  740.  
  741. NListtree.mcc/MUIA_NListtree_OpenHook   NListtree.mcc/MUIA_NListtree_OpenHook
  742.  
  743.    NAME
  744.  
  745.     MUIA_NListtree_OpenHook -- [IS.], struct Hook *
  746.  
  747.  
  748.    SPECIAL VALUES
  749.  
  750.  
  751.    FUNCTION
  752.  
  753.     The open hook is called whenever a list node will be opened, so you
  754.     can change the list before the node is open.
  755.     
  756.     The open hook will be called with the hook in A0, the object in A2
  757.     and a MUIP_NListtree_OpenMessage struct in A1 (see nlisttree_mcc.h).
  758.  
  759.     To remove the hook set this to NULL.
  760.  
  761.  
  762.    NOTIFICATION
  763.  
  764.  
  765.    SEE ALSO
  766.  
  767.     MUIA_NListtree_Open, MUIA_NListtree_CloseHook
  768.  
  769.  
  770. NListtree.mcc/MUIA_NListtree_Quiet         NListtree.mcc/MUIA_NListtree_Quiet
  771.  
  772.    NAME
  773.  
  774.     MUIA_NListtree_Quiet -- [.S.], QUIET
  775.  
  776.  
  777.    SPECIAL VALUES
  778.  
  779.  
  780.    FUNCTION
  781.  
  782.     If you add/remove lots of entries to/from a listtree, this will cause
  783.     lots of screen action and slow down the operation. Setting
  784.     MUIA_NListtree_Quiet to TRUE will temporarily prevent the listtree from
  785.     being refreshed, this refresh will take place only once when you set
  786.     it back to FALSE again.
  787.  
  788.     Do not use MUIA_NList_Quiet here!
  789.  
  790.  
  791.    NOTIFICATION
  792.  
  793.  
  794.    SEE ALSO
  795.  
  796.     MUIM_NListtree_Insert, MUIM_NListtree_Remove
  797.  
  798.  
  799. NListtree.mcc/MUIA_NListtree_Title         NListtree.mcc/MUIA_NListtree_Title
  800.  
  801.    NAME
  802.  
  803.     MUIA_NListtree_Title -- [IS.], BOOL
  804.  
  805.  
  806.    SPECIAL VALUES
  807.  
  808.  
  809.    FUNCTION
  810.  
  811.     Specify a title for the current listtree.
  812.  
  813.     For detailed information see MUIA_NList_Title!
  814.  
  815.  
  816.    NOTIFICATION
  817.  
  818.  
  819.     BUGS
  820.  
  821.     The title should not be a string as for single column listviews. This
  822.     attribute can only be set to TRUE or FALSE.
  823.  
  824.  
  825.    SEE ALSO
  826.  
  827.  
  828.  
  829. NListtree.mcc/MUIA_NListtree_TreeColumnListtree.mcc/MUIA_NListtree_TreeColumn
  830.  
  831.    NAME
  832.  
  833.     MUIA_NListtree_TreeColumn -- [ISG], ULONG
  834.  
  835.  
  836.    SPECIAL VALUES
  837.  
  838.  
  839.    FUNCTION
  840.  
  841.     Specify the column of the list tree, the node indicator and the name
  842.     of the node are displayed in.
  843.  
  844.  
  845.    NOTIFICATION
  846.  
  847.  
  848.    SEE ALSO
  849.  
  850.     MUIA_NListtree_DisplayHook, MUIA_NListtree_Format
  851.  
  852.  
  853. NListtree.mcc/MUIM_NListtree_Close         NListtree.mcc/MUIM_NListtree_Close
  854.  
  855.    NAME    
  856.  
  857.     MUIM_NListtree_Close -- Close the specified list node. (V1)
  858.  
  859.  
  860.    SYNOPSIS
  861.  
  862.     DoMethod(obj, MUIM_NListtree_Close,
  863.         struct MUI_NListtree_TreeNode *listnode,
  864.         struct MUI_NListtree_TreeNode *treenode,
  865.         ULONG flags);
  866.  
  867.  
  868.    FUNCTION
  869.  
  870.     Close a node or nodes of a listtree. It is checked if the tree node
  871.     is a node, not a leaf!
  872.  
  873.     When the active entry was a child of the closed node, the closed node
  874.     will become active.
  875.  
  876.  
  877.    INPUTS
  878.  
  879.     listnode -    Specify the node which list is used to find the entry. The
  880.                 search is started at the head of this list.
  881.  
  882.         MUIV_NListtree_Close_ListNode_Root
  883.             The root list is used.
  884.  
  885.         MUIV_NListtree_Close_ListNode_Parent
  886.             The list which is the parent of the active list is used.
  887.  
  888.         MUIV_NListtree_Close_ListNode_Active
  889.             The list of the active node is used.
  890.  
  891.  
  892.     treenode -    The node which should be closed. If there are children
  893.                 of the node, they are also closed.
  894.  
  895.         MUIV_NListtree_Close_TreeNode_Head
  896.             The head of the list defined in 'listnode' is closed.
  897.  
  898.         MUIV_NListtree_Close_TreeNode_Tail:
  899.             Closes the tail of the list defined in 'listnode'.
  900.  
  901.         MUIV_NListtree_Close_TreeNode_Active:
  902.             Closes the active node.
  903.  
  904.         MUIV_NListtree_Close_TreeNode_All:
  905.             Closes all nodes of the list which is specified in
  906.             'listnode'.
  907.  
  908.  
  909.    RESULT
  910.  
  911.    EXAMPLE
  912.  
  913.         /* Close the active list. */
  914.         DoMethod(obj, MUIM_NListtree_Close,
  915.             MUIV_NListtree_Close_ListNode_Active,
  916.             MUIV_NListtree_Close_TreeNode_Active, 0);
  917.  
  918.  
  919.    NOTES
  920.  
  921.    BUGS
  922.  
  923.    SEE ALSO
  924.     MUIM_NListtree_Open
  925.  
  926.  
  927. NListtree.mcc/MUIM_NListtree_Copy           NListtree.mcc/MUIM_NListtree_Copy
  928.  
  929.    NAME
  930.  
  931.     MUIM_NListtree_Copy -- Copy an entry (create it) to the spec. pos. (V1)
  932.  
  933.  
  934.    SYNOPSIS
  935.  
  936.     DoMethod(obj, MUIM_NListtree_Copy,
  937.         struct MUI_NListtree_TreeNode *srclistnode,
  938.         struct MUI_NListtree_TreeNode *srctreenode,
  939.         struct MUI_NListtree_TreeNode *destlistnode,
  940.         struct MUI_NListtree_TreeNode *desttreenode,
  941.         ULONG flags);
  942.  
  943.  
  944.    FUNCTION
  945.  
  946.     Copy an entry to the position after a defined node. The complete
  947.     child structure will be copied.
  948.  
  949.  
  950.    INPUTS
  951.  
  952.     srclistnode -    Specify the node which list is used to find the
  953.                     entry. The search is started at the head of this
  954.                     list.
  955.  
  956.         MUIV_NListtree_Copy_SourceListNode_Root
  957.             The root list is used as the starting point.
  958.  
  959.         MUIV_NListtree_Copy_SourceListNode_Active
  960.             The active list (the list of the active node) is used as
  961.             the starting point.
  962.  
  963.     srctreenode -    Specifies the node which should be copied.
  964.  
  965.         MUIV_NListtree_Copy_SourceTreeNode_Head
  966.             The head of the list defined in 'srclistnode' is copied.
  967.  
  968.         MUIV_NListtree_Copy_SourceTreeNode_Tail
  969.             The tail of the list defined in 'srclistnode' is copied.
  970.  
  971.         MUIV_NListtree_Copy_SourceTreeNode_Active
  972.             The active node is copied.
  973.  
  974.     destlistnode -    Specify the node which list is used to find the
  975.                     entry. The search is started at the head of this
  976.                     list.
  977.  
  978.         MUIV_NListtree_Copy_DestListNode_Root
  979.             The root list.
  980.  
  981.         MUIV_NListtree_Copy_DestListNode_Active
  982.             The list of the active node.
  983.  
  984.     desttreenode -    This node is the predecessor of the entry which is
  985.                     inserted.
  986.  
  987.         MUIV_NListtree_Copy_DestTreeNode_Head
  988.             The node is copied to the head of the list defined in
  989.             'destlistnode'.
  990.  
  991.         MUIV_NListtree_Copy_DestTreeNode_Tail
  992.             The node is copied to the tail of the list defined in
  993.             'destlistnode'.
  994.  
  995.         MUIV_NListtree_Copy_DestTreeNode_Active:
  996.             The node is copied to one entry after the active node.
  997.  
  998.         MUIV_NListtree_Copy_DestTreeNode_Sorted:
  999.             The node is copied to the list using the sort hook.
  1000.  
  1001.     flags -        Some flags to adjust moving.
  1002.  
  1003.         MUIV_NListtree_Copy_Flag_KeepStructure
  1004.             The full tree structure from the selected entry to
  1005.             the root list is copied (created) at destination.
  1006.  
  1007.  
  1008.    RESULT
  1009.  
  1010.    EXAMPLE
  1011.  
  1012.         /* Copy the active entry to the head of
  1013.         ** another list node.
  1014.         */
  1015.         DoMethod(obj,
  1016.             MUIV_NListtree_Copy_SourceListNode_Active,
  1017.             MUIV_NListtree_Copy_SourceTreeNode_Active,
  1018.             anylistnode,
  1019.             MUIV_NListtree_Copy_DestTreeNode_Head,
  1020.             0);
  1021.  
  1022.  
  1023.    NOTES
  1024.  
  1025.    BUGS
  1026.  
  1027.    SEE ALSO
  1028.  
  1029.     MUIM_NListtree_Insert, MUIM_NListtree_Remove,
  1030.     MUIM_NListtree_Exchange, MUIA_NListtree_CompareHook,
  1031.     MUIM_NListtree_Move
  1032.  
  1033.  
  1034. NListtree.mcc/MUIM_NListtree_Exchange   NListtree.mcc/MUIM_NListtree_Exchange
  1035.  
  1036.    NAME
  1037.  
  1038.     MUIM_NListtree_Exchange -- Exchanges two tree nodes. (V1)
  1039.  
  1040.  
  1041.    SYNOPSIS
  1042.  
  1043.     DoMethod(obj, MUIM_NListtree_Exchange,
  1044.         struct MUI_NListtree_TreeNode *listnode1,
  1045.         struct MUI_NListtree_TreeNode *treenode1,
  1046.         struct MUI_NListtree_TreeNode *listnode2,
  1047.         struct MUI_NListtree_TreeNode *treenode2,
  1048.         ULONG flags);
  1049.  
  1050.  
  1051.    FUNCTION
  1052.  
  1053.     Exchange two tree nodes.
  1054.  
  1055.  
  1056.    INPUTS
  1057.  
  1058.     listnode1 -    Specify the list node of the entry which should be exchang
  1059. ed.
  1060.  
  1061.         MUIV_NListtree_Exchange_ListNode1_Root
  1062.             The root list is used.
  1063.  
  1064.         MUIV_NListtree_Exchange_ListNode1_Active
  1065.             The active list (the list of the active node) is used.
  1066.  
  1067.     treenode1 -    Specify the node which should be exchanged.
  1068.  
  1069.         MUIV_NListtree_Exchange_TreeNode1_Head
  1070.             The head of the list defined in 'listnode1' is
  1071.             exchanged.
  1072.  
  1073.         MUIV_NListtree_Exchange_TreeNode1_Tail
  1074.             The tail of the list defined in 'listnode1' is
  1075.             exchanged.
  1076.  
  1077.         MUIV_NListtree_Exchange_TreeNode1_Active
  1078.             The active node is exchanged.
  1079.  
  1080.     listnode2 -    Specify the second list node which is used for exchange.
  1081.  
  1082.         MUIV_NListtree_Exchange_ListNode2_Root
  1083.             The root list.
  1084.  
  1085.         MUIV_NListtree_Exchange_ListNode2_Active
  1086.             The list of the active node.
  1087.  
  1088.     treenode2 -    This node is the second entry which is exchanged.
  1089.  
  1090.         MUIV_NListtree_Exchange_TreeNode2_Head
  1091.             The node 'treenode1' is exchanged with the head of the
  1092.             list defined in 'listnode2'.
  1093.  
  1094.         MUIV_NListtree_Exchange_TreeNode2_Tail
  1095.             The node 'treenode1' is exchanged with the tail of the
  1096.             list defined in 'ln2'.
  1097.  
  1098.         MUIV_NListtree_Exchange_TreeNode2_Active:
  1099.             The node 'treenode1' is exchanged with the active node.
  1100.        
  1101.         MUIV_NListtree_Exchange_TreeNode2_Up:
  1102.             The node 'treenode1' is exchanged with the entry
  1103.             previous to the one specified in 'treenode1'.
  1104.  
  1105.         MUIV_NListtree_Exchange_TreeNode2_Down:
  1106.             The node 'treenode1' is exchanged with the entry next
  1107.             (the successor) to the one specified in 'treenode1'.
  1108.  
  1109.  
  1110.    RESULT
  1111.  
  1112.    EXAMPLE
  1113.  
  1114.         /* Exchange the active entry with the successor. */
  1115.         DoMethod(obj,
  1116.             MUIV_NListtree_Exchange_ListNode1_Active,
  1117.             MUIV_NListtree_Exchange_TreeNode1_Active,
  1118.             MUIV_NListtree_Exchange_ListNode2_Active,
  1119.             MUIV_NListtree_Exchange_TreeNode2_Down,
  1120.             0);
  1121.  
  1122.  
  1123.    NOTES
  1124.  
  1125.    BUGS
  1126.  
  1127.    SEE ALSO
  1128.  
  1129.     MUIM_NListtree_Move, MUIM_NListtree_Insert,
  1130.     MUIM_NListtree_Remove
  1131.  
  1132.  
  1133. NListtree.mcc/MUIM_NListtree_FindName   NListtree.mcc/MUIM_NListtree_FindName
  1134.  
  1135.    NAME    
  1136.  
  1137.     MUIM_NListtree_FindName -- Find node using name match. (V1)
  1138.  
  1139.  
  1140.    SYNOPSIS
  1141.  
  1142.     struct MUI_NListtree_TreeNode *treenode =
  1143.         DoMethod(obj, MUIM_NListtree_FindName,
  1144.             struct MUI_NListtree_TreeNode *listnode,
  1145.             STRPTR name, ULONG flags);
  1146.  
  1147.  
  1148.    FUNCTION
  1149.  
  1150.     Find a node which name matches the specified one using the list node as
  1151.     start point..
  1152.  
  1153.  
  1154.    INPUTS
  1155.     listnode -    Specify the node which list is used to find the name.
  1156.  
  1157.         MUIV_NListtree_FindName_ListNode_Root
  1158.             Use the root list as the base list.
  1159.  
  1160.         MUIV_NListtree_FindName_ListNode_Active
  1161.             Use the list of the active node as the base.
  1162.  
  1163.     name -        Specify the name of the node to find.
  1164.  
  1165.     flags:
  1166.  
  1167.         MUIV_NListtree_FindName_Flag_SameLevel
  1168.             Only nodes on the same level are affected.
  1169.  
  1170.         MUIV_NListtree_FindName_Flag_Visible
  1171.             The node is only returned if it is visible (only visible
  1172.             entries are checked).
  1173.  
  1174.         MUIV_NListtree_FindName_Flag_Activate
  1175.             If found, the entry will be activated.
  1176.  
  1177.  
  1178.    RESULT
  1179.  
  1180.     Returns the found node if available, NULL otherwise.    
  1181.  
  1182.  
  1183.    EXAMPLE
  1184.  
  1185.         /* Find 2nd node by name. */
  1186.         struct MUI_NListtree_TreeNode *treenode =
  1187.             DoMethod(obj, MUIM_NListtree_FindName,
  1188.                 listnode, "2nd node",
  1189.                 MUIV_NListtree_FindName_SameLevel|
  1190.                 MUIV_NListtree_FindName_Visible);
  1191.  
  1192.         if ( treenode == NULL )
  1193.         {
  1194.             PrintToUser( "No matching entry found." );
  1195.         }
  1196.  
  1197.  
  1198.    NOTES
  1199.  
  1200.    BUGS
  1201.  
  1202.    SEE ALSO
  1203.  
  1204.     MUIM_NListtree_GetEntry
  1205.  
  1206.  
  1207. NListtree.mcc/MUIM_NListtree_GetEntry   NListtree.mcc/MUIM_NListtree_GetEntry
  1208.  
  1209.    NAME    
  1210.  
  1211.     MUIM_NListtree_GetEntry -- Get another node in relation to this. (V1)
  1212.  
  1213.  
  1214.    SYNOPSIS
  1215.  
  1216.     struct MUI_NListtree_TreeNode *rettreenode =
  1217.         DoMethod(obj, MUIM_NListtree_GetEntry,
  1218.             struct MUI_NListtree_TreeNode *treenode,
  1219.             LONG pos, ULONG flags);
  1220.  
  1221.  
  1222.    FUNCTION
  1223.  
  1224.     Get another node in relation to the specified list or node.
  1225.  
  1226.  
  1227.    INPUTS
  1228.  
  1229.     treenode -    Define the node which is used to find another one.
  1230.                 This can also be a list node, if the position is
  1231.                 related to a list.
  1232.  
  1233.         MUIV_NListtree_GetEntry_ListNode_Root
  1234.             The root list is used.
  1235.  
  1236.         MUIV_NListtree_GetEntry_ListNode_Active:
  1237.             The list with the active entry is used.
  1238.  
  1239.     pos -    The relative position of the node 'treenode'.
  1240.  
  1241.         MUIV_NListtree_GetEntry_Position_Head
  1242.             The head of the list is returned.
  1243.  
  1244.         MUIV_NListtree_GetEntry_Position_Tail
  1245.             The tail of the list is returned.
  1246.  
  1247.         MUIV_NListtree_GetEntry_Position_Active
  1248.             The active node is returned. If there is no active entry,
  1249.             NULL is returned.
  1250.  
  1251.         MUIV_NListtree_GetEntry_Position_Next
  1252.             The node next to the specified node is returned. Returns NULL
  1253.             if there is no next entry.
  1254.  
  1255.         MUIV_NListtree_GetEntry_Position_Previous
  1256.             The node right before the specified node is returned.
  1257.             Returns NULL if there is no previous entry (if 'treenode'
  1258.             is the head of the list.
  1259.  
  1260.         MUIV_NListtree_GetEntry_Position_Parent
  1261.             The list node of the specified 'treenode' is returned.
  1262.  
  1263.     flags:
  1264.  
  1265.         MUIV_NListtree_GetEntry_SameLevel:
  1266.             Only nodes on the same level are affected.
  1267.  
  1268.         MUIV_NListtree_GetEntry_Flag_Visible:
  1269.             The position is counted on visible entries only.
  1270.  
  1271.  
  1272.    RESULT
  1273.  
  1274.     Returns the requested node if available, NULL otherwise.    
  1275.  
  1276.  
  1277.    EXAMPLE
  1278.  
  1279.         /* Get the next entry. */
  1280.         struct MUI_NListtree_TreeNode *treenode =
  1281.             DoMethod(obj, MUIM_NListtree_GetEntry, treenode,
  1282.             MUIV_NListtree_GetEntry_Position_Next, 0);
  1283.  
  1284.         if ( treenode != NULL )
  1285.         {
  1286.             PrintToUser( "Next entry found!" );
  1287.         }
  1288.  
  1289.  
  1290.    NOTES
  1291.  
  1292.    BUGS
  1293.  
  1294.    SEE ALSO
  1295.  
  1296.     MUIM_NList_GetEntry
  1297.  
  1298.  
  1299. NListtree.mcc/MUIM_NListtree_GetNr         NListtree.mcc/MUIM_NListtree_GetNr
  1300.  
  1301.    NAME
  1302.  
  1303.     MUIM_NListtree_GetNr -- Get the position number of a tree node. (V1)
  1304.  
  1305.  
  1306.    SYNOPSIS
  1307.  
  1308.     ULONG number = DoMethod(obj, MUIM_NListtree_GetNr,
  1309.         struct MUI_NListtree_TreeNode *treenode, ULONG flags);
  1310.  
  1311.  
  1312.    FUNCTION
  1313.  
  1314.     Get the position number of the specified tree node.
  1315.  
  1316.  
  1317.    INPUTS
  1318.  
  1319.     treenode -    Specify the node to count the position of.
  1320.  
  1321.         MUIV_NListtree_GetNr_TreeNode_Active:
  1322.             The position is counted related to the active node.
  1323.  
  1324.     flags:
  1325.  
  1326.         MUIV_NListtree_GetNr_Flag_CountAll
  1327.             Returns the number of all entries.
  1328.  
  1329.         MUIV_NListtree_GetNr_Flag_CountLevel
  1330.             Returns the number of entries of the list the
  1331.             specified node is in.
  1332.  
  1333.         MUIV_NListtree_GetNr_Flag_CountList
  1334.             Returns the number of the entries of the active list node
  1335.             (the specified node is in).
  1336.  
  1337.         MUIV_NListtree_GetNr_Flag_ListEmpty
  1338.             Returns TRUE if the specified list node is empty.
  1339.  
  1340.  
  1341.    RESULT
  1342.  
  1343.    EXAMPLE
  1344.  
  1345.         /* Check if the active (list) node is empty. */
  1346.         ULONG empty = DoMethod(obj, MUIM_NListtree_GetNr,
  1347.             MUIV_NListtree_GetNr_TreeNode_Active,
  1348.             MUIV_NListtree_GetNr_Flag_ListEmpty);
  1349.  
  1350.         if ( empty == TRUE )
  1351.         {
  1352.             AddThousandEntries();
  1353.         }
  1354.  
  1355.    NOTES
  1356.  
  1357.    BUGS
  1358.  
  1359.    SEE ALSO
  1360.  
  1361.     MUIM_NListtree_GetEntry
  1362.  
  1363. NListtree.mcc/MUIM_NListtree_Insert       NListtree.mcc/MUIM_NListtree_Insert
  1364.  
  1365.    NAME
  1366.  
  1367.     MUIM_NListtree_Insert -- Insert an entry at the specified position. (V1)
  1368.  
  1369.  
  1370.    SYNOPSIS
  1371.  
  1372.     struct MUI_NListtree_TreeNode *treenode =
  1373.         DoMethod(obj, MUIM_NListtree_Insert,
  1374.             STRPTR name, APTR userdata,
  1375.             struct MUI_NListtree_TreeNode *listnode,
  1376.             struct MUI_NListtree_TreeNode *prevtreenode,
  1377.             ULONG flags);
  1378.  
  1379.  
  1380.    FUNCTION
  1381.  
  1382.     Insert an entry at the position, which is defined in 'listnode'
  1383.     and 'prevtreenode'. Name contains the name of the entry as string
  1384.     which is buffered. The user entry can be used as you like.
  1385.  
  1386.  
  1387.    INPUTS
  1388.  
  1389.     listnode -        Specify the node which list is used to insert
  1390.                     the entry.
  1391.  
  1392.         MUIV_NListtree_Insert_ListNode_Root
  1393.             Use the root list.
  1394.  
  1395.         MUIV_NListtree_Insert_ListNode_Active
  1396.             Use the list of the active node.
  1397.  
  1398.         MUIV_NListtree_Insert_ListNode_LastInserted
  1399.             Insert entry in the list the last entry was inserted.
  1400.  
  1401.  
  1402.     prevtreenode -    The node which is the predecessor of the node
  1403.                     to insert.
  1404.  
  1405.         MUIV_NListtree_Insert_PrevNode_Head
  1406.             The entry will be inserted at the head of the list.
  1407.  
  1408.         MUIV_NListtree_Insert_PrevNode_Tail
  1409.             The entry will be inserted at the tail of the list.
  1410.  
  1411.         MUIV_NListtree_Insert_PrevNode_Active
  1412.             The entry will be inserted after the active node of
  1413.             the list.
  1414.  
  1415.         MUIV_NListtree_Insert_PrevNode_Sorted:
  1416.             The entry will be inserted using the defined sort hook.
  1417.  
  1418.     flags:
  1419.  
  1420.         MUIV_NListtree_Insert_Flag_Active
  1421.             The inserted entry will be set to active. This means the
  1422.             cursor is moved to the newly inserted entry. If the entry
  1423.             was inserted into a closed node, it will be opened.
  1424.  
  1425.         MUIV_NListtree_Insert_Flag_NextNode
  1426.             'prevtreenode' is the successor, not the predecessor.
  1427.  
  1428.  
  1429.    RESULT
  1430.  
  1431.     A pointer to the newly inserted entry.
  1432.  
  1433.  
  1434.    EXAMPLE
  1435.         /* Insert an entry after the active one and make it active. */
  1436.         DoMethod(obj, MUIM_NListtree_Insert,
  1437.             MUIV_NListtree_Insert_ListNode_Active,
  1438.             MUIV_NListtree_Insert_TreeNode_Active,
  1439.             MUIV_NListtree_Insert_Flag_Active);
  1440.  
  1441.  
  1442.    NOTES
  1443.  
  1444.    BUGS
  1445.  
  1446.     Not implemented yet:
  1447.         MUIV_NListtree_Insert_Flag_NextNode
  1448.  
  1449.  
  1450.    SEE ALSO
  1451.  
  1452.     MUIA_NListtree_ConstructHook, MUIA_NListtree_CompareHook
  1453.  
  1454.  
  1455. NListtree.mcc/MUIM_NListtree_Move           NListtree.mcc/MUIM_NListtree_Move
  1456.  
  1457.    NAME
  1458.  
  1459.     MUIM_NListtree_Move -- Move an entry to the specified position. (V1)
  1460.  
  1461.  
  1462.    SYNOPSIS
  1463.  
  1464.     DoMethod(obj, MUIM_NListtree_Move,
  1465.         struct MUI_NListtree_TreeNode *oldlistnode,
  1466.         struct MUI_NListtree_TreeNode *oldtreenode,
  1467.         struct MUI_NListtree_TreeNode *newlistnode,
  1468.         struct MUI_NListtree_TreeNode *newtreenode,
  1469.         ULONG flags);
  1470.  
  1471.  
  1472.    FUNCTION
  1473.  
  1474.     Move an entry to the position after a defined node.
  1475.  
  1476.  
  1477.    INPUTS
  1478.  
  1479.     oldlistnode -    Specify the node which list is used to find the
  1480.                     entry. The search is started at the head of this
  1481.                     list.
  1482.  
  1483.         MUIV_NListtree_Move_OldListNode_Root
  1484.             The root list is used as the starting point.
  1485.  
  1486.         MUIV_NListtree_Move_OldListNode_Active
  1487.             The active list (the list of the active node) is used as
  1488.             the starting point.
  1489.  
  1490.     oldtreenode -    Specify the node which should be moved.
  1491.  
  1492.         MUIV_NListtree_Move_OldTreeNode_Head
  1493.             The head of the list defined in 'oldlistnode' is moved.
  1494.  
  1495.         MUIV_NListtree_Move_OldTreeNode_Tail
  1496.             The tail of the list defined in 'oldlistnode' is moved.
  1497.  
  1498.         MUIV_NListtree_Move_OldTreeNode_Active
  1499.             The active node is moved.
  1500.  
  1501.     newlistnode -    Specify the node which list is used to find the
  1502.                     entry. The search is started at the head of this
  1503.                     list.
  1504.  
  1505.         MUIV_NListtree_Move_NewListNode_Root
  1506.             The root list.
  1507.  
  1508.         MUIV_NListtree_Move_NewListNode_Active
  1509.             The list of the active node.
  1510.  
  1511.     newtreenode -    This node is the predecessor of the entry which is
  1512.                     inserted.
  1513.  
  1514.         MUIV_NListtree_Move_NewTreeNode_Head
  1515.             The node is moved to the head of the list defined in
  1516.             'newlistnode'.
  1517.  
  1518.         MUIV_NListtree_Move_NewTreeNode_Tail
  1519.             The node is moved to the tail of the list defined in
  1520.             'newlistnode'.
  1521.  
  1522.         MUIV_NListtree_Move_NewTreeNode_Active:
  1523.             The node is moved to one entry after the active node.
  1524.  
  1525.         MUIV_NListtree_Move_NewTreeNode_Sorted:
  1526.             The node is moved to the list using the sort hook.
  1527.  
  1528.     flags -        Some flags to adjust moving.
  1529.  
  1530.         MUIV_NListtree_Move_Flag_KeepStructure
  1531.             The full tree structure from the selected entry to
  1532.             the root list is moved (created at destination).
  1533.  
  1534.  
  1535.    RESULT
  1536.  
  1537.    EXAMPLE
  1538.  
  1539.         /* Move an entry to the head of another list-node. */
  1540.         DoMethod(obj,
  1541.             MUIV_NListtree_Move_OldListNode_Active,
  1542.             MUIV_NListtree_Move_OldTreeNode_Active,
  1543.             somelistmode,
  1544.             MUIV_NListtree_Move_NewTreeNode_Head,
  1545.             0);
  1546.  
  1547.  
  1548.    NOTES
  1549.  
  1550.    BUGS
  1551.  
  1552.    SEE ALSO
  1553.  
  1554.     MUIM_NListtree_Insert, MUIM_NListtree_Remove,
  1555.     MUIM_NListtree_Exchange, MUIA_NListtree_CompareHook,
  1556.     MUIM_NListtree_Copy
  1557.  
  1558. NListtree.mcc/MUIM_NListtree_MultiTest NListtree.mcc/MUIM_NListtree_MultiTest
  1559.  
  1560.    NAME
  1561.  
  1562.     MUIM_NListtree_MultiTest -- Called for every selection. (V1)
  1563.  
  1564.  
  1565.    SYNOPSIS
  1566.  
  1567.     DoMethod(obj, MUIM_NListtree_MultiTest,
  1568.         struct MUIP_NListtree_MultiTest *multimessage);
  1569.  
  1570.  
  1571.    FUNCTION
  1572.  
  1573.     This method must not be called directly. It will be called by
  1574.     NListtree just before multiselection. You can redefine it and
  1575.     return TRUE or FALSE whether you want the entry to be multi-
  1576.     selectable or not.
  1577.  
  1578.  
  1579.    INPUTS
  1580.  
  1581.    RESULT
  1582.  
  1583.    EXAMPLE
  1584.  
  1585.    NOTES
  1586.  
  1587.    BUGS
  1588.  
  1589.    SEE ALSO
  1590.  
  1591.     MUIM_NListtree_Select, MUIA_NListtree_MultiTest
  1592.  
  1593.  
  1594. NListtree.mcc/MUIM_NListtree_NextSelectedtree.mcc/MUIM_NListtree_NextSelected
  1595.  
  1596.    NAME
  1597.  
  1598.     MUIM_NListtree_NextSelected -- Select the specified tree node. (V1)
  1599.  
  1600.  
  1601.    SYNOPSIS
  1602.  
  1603.     DoMethod(obj, MUIM_NListtree_NextSelected,
  1604.         struct MUI_NListtree_TreeNode **treenode);
  1605.  
  1606.  
  1607.    FUNCTION
  1608.  
  1609.     Iterate through the selected entries of a tree. This method steps
  1610.     through the contents of a (multi select) list tree and returns
  1611.     every entry that is currently selected. When no entry is selected
  1612.     but an entry is active, only the active entry will be returned.
  1613.  
  1614.     This behaviour will result in not returning the active entry when
  1615.     you have some other selected entries somewhere in your list. Since
  1616.     the active entry just acts as some kind of cursor mark, this seems
  1617.     to be the only sensible possibility to handle multi selection
  1618.     together with keyboard control.
  1619.  
  1620.  
  1621.    INPUTS
  1622.  
  1623.     treenode -  A pointer to a pointer of struct MUI_NListtree_TreeNode
  1624.                 that will hold the returned entry. Must be set to
  1625.                 MUIV_NListtree_NextSelected_Start at start of iteration
  1626.                 and is set to MUIV_NListtree_NextSelected_End when
  1627.                 iteration is finished.
  1628.  
  1629.         MUIV_NListtree_NextSelected_Start    Set this to start iteration.
  1630.         MUIV_NListtree_NextSelected_End        Will be set to this, if
  1631.                                             last selected entry reached.
  1632.  
  1633.  
  1634.    RESULT
  1635.  
  1636.    EXAMPLE
  1637.  
  1638.     /* Iterate through a list */
  1639.     struct MUI_NListtree_TreeNode *treenode;
  1640.  
  1641.     treenode = MUIV_NListtree_NextSelected_Start;
  1642.  
  1643.     for (;;)
  1644.     {
  1645.         DoMethod(listtree, MUIM_NListtree_NextSelected, &treenode);
  1646.  
  1647.         if (treenode==MUIV_NListtree_NextSelected_End)
  1648.             break;
  1649.  
  1650.         printf("selected: %s\n", treenode->tn_Name);
  1651.     }
  1652.  
  1653.  
  1654.    NOTES
  1655.  
  1656.    BUGS
  1657.  
  1658.    SEE ALSO
  1659.  
  1660.     MUIM_NListtree_Select
  1661.  
  1662.  
  1663. NListtree.mcc/MUIM_NListtree_Open           NListtree.mcc/MUIM_NListtree_Open
  1664.  
  1665.    NAME
  1666.  
  1667.     MUIM_NListtree_Open -- Open the specified tree node. (V1)
  1668.  
  1669.  
  1670.    SYNOPSIS
  1671.  
  1672.     DoMethod(obj, MUIM_NListtree_Open,
  1673.         struct MUI_NListtree_TreeNode *listnode,
  1674.         struct MUI_NListtree_TreeNode *treenode,
  1675.         ULONG flags);
  1676.  
  1677.  
  1678.    FUNCTION
  1679.  
  1680.     Opens a node in the listtree. To open a child, which isn't displayed,
  1681.     use 'MUIV_NListtree_Open_ListNode_Parent' to open all its parents, too.
  1682.  
  1683.     Only nodes can be opened.
  1684.  
  1685.  
  1686.    INPUTS
  1687.  
  1688.     listnode -    Specify the node which list is used to open the node.
  1689.     
  1690.         MUIV_NListtree_Open_ListNode_Root
  1691.             The root list is used.
  1692.  
  1693.         MUIV_NListtree_Open_ListNode_Parent
  1694.             Indicates, that all the parents of the node specified in
  1695.             'treenode' should be opened too.
  1696.  
  1697.         MUIV_NListtree_Open_ListNode_Active
  1698.             The list of the active node is used.
  1699.  
  1700.     treenode -    The node to open.
  1701.  
  1702.         MUIV_NListtree_Open_TreeNode_Head
  1703.             Opens the head node of the list.
  1704.  
  1705.         MUIV_NListtree_Open_TreeNode_Tail
  1706.             Opens the tail node of the list.
  1707.  
  1708.         MUIV_NListtree_Open_TreeNode_Active
  1709.             The active node will be opened.
  1710.  
  1711.         MUIV_NListtree_Open_TreeNode_All:
  1712.             All the nodes of the list are opened.
  1713.  
  1714.  
  1715.    RESULT
  1716.  
  1717.    EXAMPLE
  1718.         /* Open the active list. */
  1719.         DoMethod(obj, MUIM_NListtree_Open,
  1720.             MUIV_NListtree_Open_ListNode_Active,
  1721.             MUIV_NListtree_Open_TreeNode_Active, 0);
  1722.  
  1723.  
  1724.    NOTES
  1725.  
  1726.    BUGS
  1727.  
  1728.    SEE ALSO
  1729.     MUIM_NListtree_Close
  1730.  
  1731.  
  1732. NListtree.mcc/MUIM_NListtree_Redraw       NListtree.mcc/MUIM_NListtree_Redraw
  1733.  
  1734.    NAME    
  1735.  
  1736.     MUIM_NListtree_Redraw -- Redraw the specified tree node. (V1)
  1737.  
  1738.  
  1739.    SYNOPSIS
  1740.  
  1741.     DoMethod(obj, MUIM_NListtree_Redraw,
  1742.         struct MUI_NListtree_TreeNode *treenode, ULONG flags);
  1743.  
  1744.  
  1745.    FUNCTION
  1746.  
  1747.     Redraw the specified entry. See special values for completeness.
  1748.  
  1749.  
  1750.    INPUTS
  1751.  
  1752.     treenode -    The tree node to be redrawn.
  1753.  
  1754.         MUIV_NListtree_Redraw_Active
  1755.             Redraw the active entry.
  1756.  
  1757.         MUIV_NListtree_Redraw_All
  1758.             Redraw the complete visible tree.
  1759.  
  1760.  
  1761.     flags:
  1762.  
  1763.         MUIV_NListtree_Redraw_Flag_Nr
  1764.             The data specified in 'treenode' is the entry number,
  1765.             not the tree node itself.
  1766.  
  1767.  
  1768.    RESULT
  1769.  
  1770.    EXAMPLE
  1771.  
  1772.         /* Redraw the active entry. */
  1773.         DoMethod(obj, MUIM_NListtree_Redraw,
  1774.             MUIV_NListtree_Redraw_Active, 0);
  1775.  
  1776.  
  1777.    NOTES
  1778.  
  1779.    BUGS
  1780.  
  1781.    SEE ALSO
  1782.  
  1783.     MUIM_NList_TestPos
  1784.  
  1785.  
  1786. NListtree.mcc/MUIM_NListtree_Remove       NListtree.mcc/MUIM_NListtree_Remove
  1787.  
  1788.    NAME    
  1789.  
  1790.     MUIM_NListtree_Remove -- Remove the specified entry(ies). (V1)
  1791.  
  1792.  
  1793.    SYNOPSIS
  1794.  
  1795.     DoMethod(obj, MUIM_NListtree_Remove,
  1796.         struct MUI_NListtree_TreeNode *listnode,
  1797.         struct MUI_NListtree_TreeNode *treenode,
  1798.         ULONG flags);
  1799.  
  1800.  
  1801.    FUNCTION
  1802.  
  1803.     Removes a node or nodes from the listtree. When the active entry
  1804.     is removed, the successor will become active.
  1805.  
  1806.  
  1807.    INPUTS
  1808.  
  1809.     listnode -    Specify the node which list is used to find the entry
  1810.                 which should be removed. The search is started at the
  1811.                 begin of this list.
  1812.  
  1813.         MUIV_NListtree_Remove_ListNode_Root
  1814.             The root list is used.
  1815.  
  1816.         MUIV_NListtree_Remove_ListNode_Active
  1817.             The list of the active node is used.
  1818.  
  1819.  
  1820.     treenode -    The node which should be removed. If there are children
  1821.                 of this node, they are also removed.
  1822.  
  1823.         MUIV_NListtree_Remove_TreeNode_Head
  1824.             The head of the list defined in 'listnode' is removed.
  1825.  
  1826.         MUIV_NListtree_Remove_TreeNode_Tail
  1827.             The tail of the list defined in 'listnode' is removed.
  1828.  
  1829.         MUIV_NListtree_Remove_TreeNode_Active
  1830.             Removes the active node.
  1831.  
  1832.         MUIV_NListtree_Remove_TreeNode_All
  1833.             All nodes of the list which is specified in 'listnode',
  1834.             are removed. Other nodes of parent lists are not
  1835.             affected.
  1836.  
  1837.    RESULT
  1838.  
  1839.    EXAMPLE
  1840.  
  1841.         /* Remove the active entry if delete is pressed! */
  1842.         DoMethod(bt_delete, MUIM_Notify, MUIA_Pressed, FALSE,
  1843.             lt_list, 4, MUIM_NListtree_Remove,
  1844.             MUIV_NListtree_Remove_ListNode_Active,
  1845.             MUIV_NListtree_Remove_TreeNode_Active, 0);
  1846.  
  1847.  
  1848.    NOTES
  1849.  
  1850.    BUGS
  1851.  
  1852.    SEE ALSO
  1853.  
  1854.     MUIM_NListtree_Insert, MUIA_NListtree_DestructHook,
  1855.     MUIM_NList_Active
  1856.  
  1857.  
  1858. NListtree.mcc/MUIM_NListtree_Rename       NListtree.mcc/MUIM_NListtree_Rename
  1859.  
  1860.    NAME
  1861.  
  1862.     MUIM_NListtree_Rename -- Rename the specified node. (V1)
  1863.  
  1864.  
  1865.    SYNOPSIS
  1866.  
  1867.     struct MUI_NListtree_TreeNode *treenode =
  1868.         DoMethod(obj, MUIM_NListtree_Rename,
  1869.             struct MUI_NListtree_TreeNode *treenode,
  1870.             STRPTR newname, ULONG flags);
  1871.  
  1872.  
  1873.    FUNCTION
  1874.  
  1875.     Rename the specified node.
  1876.  
  1877.     If you want to rename the tn_User field (see flags below), the construct
  1878.     and destruct hooks are used!
  1879.     If you have not specified these hooks, only the pointers will be copied.
  1880.  
  1881.  
  1882.    INPUTS
  1883.  
  1884.     treenode -    Specifies the node which should be renamed.
  1885.  
  1886.         MUIV_NListtree_Rename_TreeNode_Active:
  1887.             Rename the active tree node.
  1888.  
  1889.     newname -    The new name or pointer.
  1890.  
  1891.     flags:
  1892.  
  1893.         MUIV_NListtree_Rename_Flag_User
  1894.             The tn_User field is renamed.
  1895.  
  1896.         MUIV_NListtree_Rename_Flag_NoRefresh
  1897.             The list entry will not be refreshed.
  1898.  
  1899.  
  1900.    RESULT
  1901.  
  1902.     Returns the pointer of the renamed tree node.
  1903.  
  1904.  
  1905.    EXAMPLE
  1906.  
  1907.         /* Rename the active tree node. */
  1908.         DoMethod(obj, MUIM_NListtree_Rename,
  1909.             MUIV_NListtree_Rename_TreeNode_Active,
  1910.             "Very new name", 0);
  1911.  
  1912.  
  1913.    NOTES
  1914.  
  1915.    BUGS
  1916.  
  1917.    SEE ALSO
  1918.  
  1919.     MUIA_NListtree_ConstructHook, MUIA_NListtree_DestructHook
  1920.  
  1921.  
  1922. NListtree.mcc/MUIM_NListtree_Select       NListtree.mcc/MUIM_NListtree_Select
  1923.  
  1924.    NAME
  1925.  
  1926.     MUIM_NListtree_Select -- Select the specified tree node. (V1)
  1927.  
  1928.  
  1929.    SYNOPSIS
  1930.  
  1931.     DoMethod(obj, MUIM_NListtree_Select,
  1932.         struct MUI_NListtree_TreeNode *treenode, LONG seltype,
  1933.         LONG selflags, LONG *state);
  1934.  
  1935.  
  1936.    FUNCTION
  1937.  
  1938.     Select or unselect a tree entry or ask an entry about its state.
  1939.     See special values for completeness.
  1940.  
  1941.  
  1942.    INPUTS
  1943.  
  1944.     treenode -    The tree node to be selected/unselected/asked.
  1945.  
  1946.         MUIV_NListtree_Select_Active    For the active entry.
  1947.         MUIV_NListtree_Select_All        For all entries.
  1948.         MUIV_NListtree_Select_Visible    For all visible entries.
  1949.  
  1950.     seltype -    Type of selection/unselection/ask
  1951.  
  1952.         MUIV_NListtree_Select_Off        Unselect entry.
  1953.         MUIV_NListtree_Select_On        Select entry.
  1954.         MUIV_NListtree_Select_Toggle    Toggle entries state.
  1955.         MUIV_NListtree_Select_Ask        Just ask about the state.
  1956.  
  1957.     selflags -    Some kind of specials.
  1958.  
  1959.         MUIV_NListtree_Select_Flag_Force
  1960.             Adding this flag to seltype forces the selection by
  1961.             bypassing the multi test hook.
  1962.  
  1963.     state -        Pointer to a longword. If not NULL, it will be filled
  1964.                 with the current selection state of the entry.
  1965.  
  1966.  
  1967.    RESULT
  1968.  
  1969.    EXAMPLE
  1970.  
  1971.         /* Select the active entry. */
  1972.         LONG retstate;
  1973.  
  1974.         DoMethod(obj, MUIM_NListtree_Select,
  1975.             MUIV_NListtree_Select_Active, MUIV_NListtree_Select_On,
  1976.             0, &retstate);
  1977.  
  1978.         /*    We must check this, because the multi test hook may
  1979.             cancel our selection. */
  1980.         if (retstate == MUIV_NListtree_Select_On) {
  1981.             ...
  1982.         }
  1983.  
  1984.  
  1985.    NOTES
  1986.  
  1987.     If treenode==MUIV_NListtree_Select_All and
  1988.     seltype==MUIV_NListtree_Select_Ask, state will be filled with
  1989.     the total number of selected entries.
  1990.     If only the active entry is selected, has a cursor mark (see
  1991.     MUIM_NListtree_NextSelected for that), you will receive 0 as
  1992.     the number of selected entries.
  1993.  
  1994.  
  1995.    BUGS
  1996.  
  1997.    SEE ALSO
  1998.  
  1999.     MUIA_NListtree_MultiTestHook
  2000.  
  2001.  
  2002. NListtree.mcc/MUIM_NListtree_Sort           NListtree.mcc/MUIM_NListtree_Sort
  2003.  
  2004.    NAME    
  2005.  
  2006.     MUIM_NListtree_Sort -- Sort the specified list node. (V1)
  2007.  
  2008.  
  2009.    SYNOPSIS
  2010.  
  2011.     DoMethod(obj, MUIM_NListtree_Sort,
  2012.         struct MUI_NListtree_TreeNode *listnode,
  2013.         ULONG flags);
  2014.  
  2015.  
  2016.    FUNCTION
  2017.  
  2018.     Sort the specified list node using the sort hook.
  2019.  
  2020.  
  2021.    INPUTS
  2022.  
  2023.     listnode -    List node to sort.
  2024.  
  2025.         MUIV_NListtree_Sort_ListNode_Root
  2026.             Sort the root list.
  2027.  
  2028.         MUIV_NListtree_Sort_ListNode_Active
  2029.             Sort the list node of the active entry.
  2030.  
  2031.         MUIV_NListtree_Sort_TreeNode_Active
  2032.             Sorts the childs of the active entry if a list.
  2033.  
  2034.     flags -        Control the part where sorting is done.
  2035.  
  2036.         MUIV_NListtree_Sort_Flag_RecursiveOpen
  2037.             Sort the list recursive. All open child nodes of the
  2038.             node specified in 'listnode' will be sorted too.
  2039.  
  2040.         MUIV_NListtree_Sort_Flag_RecursiveAll
  2041.             Sort the list recursive with ALL child nodes of the
  2042.             node specified in 'listnode'.
  2043.  
  2044.    RESULT
  2045.  
  2046.    EXAMPLE
  2047.  
  2048.         /* Sort the list of the active node. */
  2049.         DoMethod(obj, MUIM_NListtree_Sort,
  2050.             MUIV_NListtree_Sort_ListNode_Active, 0);
  2051.  
  2052.    NOTES
  2053.  
  2054.    BUGS
  2055.  
  2056.    SEE ALSO
  2057.  
  2058.     MUIA_NListtree_SortHook
  2059.  
  2060. NListtree.mcc/MUIM_NListtree_TestPos     NListtree.mcc/MUIM_NListtree_TestPos
  2061.  
  2062.    NAME
  2063.  
  2064.     MUIM_NListtree_TestPos -- Get information about entry at x/y pos. (V1)
  2065.  
  2066.  
  2067.    SYNOPSIS
  2068.  
  2069.     DoMethod(obj, MUIM_NListtree_TestPos, LONG xpos, LONG ypos,
  2070.         struct MUI_NListtree_TestPos_Result *testposresult);
  2071.  
  2072.  
  2073.    FUNCTION
  2074.  
  2075.     Find out some information about the currently displayed entry at a
  2076.     certain position (x/y-pos).
  2077.  
  2078.     This is very useful for Drag&Drop operations.
  2079.  
  2080.  
  2081.    INPUTS
  2082.  
  2083.     xpos -            X-position.
  2084.     ypos -            Y-position.
  2085.     testposresult -    Pointer to a valid MUI_NListtree_TestPos_Result
  2086.                     structure.
  2087.  
  2088.  
  2089.    RESULT
  2090.  
  2091.     tpr_TreeNode -    The tree node under the requested position or NULL
  2092.                     if there is no entry displayed.
  2093.  
  2094.     The tpr_Type field contains detailed information about the relative
  2095.     position:
  2096.  
  2097.         MUIV_NListtree_TestPos_Result_Above
  2098.         MUIV_NListtree_TestPos_Result_Below
  2099.         MUIV_NListtree_TestPos_Result_Onto
  2100.         MUIV_NListtree_TestPos_Result_Sorted
  2101.  
  2102.     tpr_Column -    The column unter the specified position or -1 if
  2103.                     no valid column.
  2104.  
  2105.  
  2106.    EXAMPLE
  2107.  
  2108.         /* Entry under the cursor? */
  2109.         struct MUI_NListtree_TestPos_Result tpres;
  2110.  
  2111.         DoMethod(obj, MUIM_NListtree_TestPos, msg->imsg->MouseX,
  2112.             msg->imsg->MouseY, &tpres);
  2113.  
  2114.         if ( tpres.tpr_Entry != NULL )
  2115.         {
  2116.             /* Do something very special here... */
  2117.         }    
  2118.  
  2119.  
  2120.    NOTES
  2121.  
  2122.    BUGS
  2123.  
  2124.    SEE ALSO
  2125.  
  2126.     MUIM_NList_TestPos
  2127.  
  2128.  
  2129.