TABLE OF CONTENTS

NList.mcc/NList.mcc
NList.mcc/MUIA_NList_Active
NList.mcc/MUIA_NList_AdjustHeight
NList.mcc/MUIA_NList_AdjustWidth
NList.mcc/MUIA_NList_AutoCopyToClip
NList.mcc/MUIA_NList_AutoVisible
NList.mcc/MUIA_NList_ClickColumn
NList.mcc/MUIA_NList_CompareHook
NList.mcc/MUIA_NList_ConstructHook
NList.mcc/MUIA_NList_CopyColumnToClipHook
NList.mcc/MUIA_NList_CopyEntryToClipHook
NList.mcc/MUIA_NList_DefaultObjectOnClick
NList.mcc/MUIA_NList_DefClickColumn
NList.mcc/MUIA_NList_DestructHook
NList.mcc/MUIA_NList_DisplayHook
NList.mcc/MUIA_NList_DisplayRecall
NList.mcc/MUIA_NList_DoubleClick
NList.mcc/MUIA_NList_DragColumnOnly
NList.mcc/MUIA_NList_DragSortable
NList.mcc/MUIA_NList_DragType
NList.mcc/MUIA_NList_DropMark
NList.mcc/MUIA_NList_DropType
NList.mcc/MUIA_NList_Entries
NList.mcc/MUIA_NList_EntryValueDependent
NList.mcc/MUIA_NList_First
NList.mcc/MUIA_NList_ForcePen
NList.mcc/MUIA_NList_Format
NList.mcc/MUIA_NList_HorizDeltaFactor
NList.mcc/MUIA_NList_Horiz_Entries
NList.mcc/MUIA_NList_Horiz_First
NList.mcc/MUIA_NList_Horiz_Visible
NList.mcc/MUIA_NList_Input
NList.mcc/MUIA_NList_InsertPosition
NList.mcc/MUIA_NList_KeepActive
NList.mcc/MUIA_NList_ListCompatibility (obsolete)
NList.mcc/MUIA_NList_MakeActive
NList.mcc/MUIA_NList_MinLineHeight
NList.mcc/MUIA_NList_MultiClick
NList.mcc/MUIA_NList_MultiSelect
NList.mcc/MUIA_NList_MultiTestHook
NList.mcc/MUIA_NList_Pool
NList.mcc/MUIA_NList_PoolPuddleSize
NList.mcc/MUIA_NList_PoolThreshSize
NList.mcc/MUIA_NList_PrivateData
NList.mcc/MUIA_NList_Prop_Entries
NList.mcc/MUIA_NList_Prop_First
NList.mcc/MUIA_NList_Prop_Visible
NList.mcc/MUIA_NList_Quiet
NList.mcc/MUIA_NList_SelectChange
NList.mcc/MUIA_NList_ShowDropMarks
NList.mcc/MUIA_NList_SkipChars
NList.mcc/MUIA_NList_SourceArray
NList.mcc/MUIA_NList_SourceInsert
NList.mcc/MUIA_NList_SourceString
NList.mcc/MUIA_NList_TabSize
NList.mcc/MUIA_NList_Title
NList.mcc/MUIA_NList_TitleClick
NList.mcc/MUIA_NList_TitleSeparator
NList.mcc/MUIA_NList_TypeSelect
NList.mcc/MUIA_NList_VertDeltaFactor
NList.mcc/MUIA_NList_Visible
NList.mcc/MUIA_NList_XXXBackground
NList.mcc/MUIA_NList_XXXPen
NList.mcc/MUIM_NList_Clear
NList.mcc/MUIM_NList_CopyTo
NList.mcc/MUIM_NList_CopyToClip
NList.mcc/MUIM_NList_CreateImage
NList.mcc/MUIM_NList_DeleteImage
NList.mcc/MUIM_NList_DropDraw
NList.mcc/MUIM_NList_DropType
NList.mcc/MUIM_NList_Exchange
NList.mcc/MUIM_NList_GetEntry
NList.mcc/MUIM_NList_GetEntryInfo
NList.mcc/MUIM_NList_GetSelectInfo
NList.mcc/MUIM_NList_Insert
NList.mcc/MUIM_NList_InsertSingle
NList.mcc/MUIM_NList_InsertSingleWrap
NList.mcc/MUIM_NList_InsertWrap
NList.mcc/MUIM_NList_Jump
NList.mcc/MUIM_NList_Move
NList.mcc/MUIM_NList_NextSelected
NList.mcc/MUIM_NList_Redraw
NList.mcc/MUIM_NList_Remove
NList.mcc/MUIM_NList_ReplaceSingle
NList.mcc/MUIM_NList_Select
NList.mcc/MUIM_NList_Sort
NList.mcc/MUIM_NList_TestPos
NList.mcc/MUIM_NList_UseImage
NList.mcc/MUIM_NList_QueryBeginning (obsolete)
NList.mcc/NList.mcc

        That MCC public custom class is very similar to the
        MUI's list class.

        It handles directly most attributes which are handled
        by Listview in the original couple List/Listview.
        The NListview exist anyway to provide a complete
        object with scrollbars, so you should use as child
        of NListview. Anyway, you can use NList without NListview
        if you don't want any builtin scrollbar.

        Note: NList class will not work with Listview without
              some conflicts, and NListview class can't use List
              as child but only NList or a NList subclass.

              MUIM_NList_TestPos and MUIM_List_TestPos are similar
              but use a different struct to store data.
              MUIM_List_TestPos works like with a List object.

    Standard tags with NList special values :

        MUIA_Background   has the same meaning than
                          MUIA_NList_ListBackground
                          but only at init.

        MUIA_Font         is settable only at init.
                          MUIV_NList_Font, MUIV_NList_Font_Little
                          and MUIV_NList_Font_Fixed are special
                          values usable for it (settable in prefs)
                          but standard values are usable too.

        MUIA_Frame        you can override the defaults frames
                          of the classe by setting it, but it will
                          be overrided again by defaults if a
                          set(obj,MUIA_NList_Input,bool) is made after.
                          if MUIA_NList_Input is TRUE then the
                          default is MUIV_Frame_InputList, if FALSE
                          it's MUIV_Frame_ReadList.

    Author: Gilles Masson    (c) 1996-1997    email: masson@iut-soph.unice.fr
NList.mcc/MUIA_NList_Active

    NAME
        MUIA_NList_Active -- [ISGN], LONG

    SPECIAL INPUTS
        MUIV_NList_Active_Off
        MUIV_NList_Active_Top
        MUIV_NList_Active_Bottom
        MUIV_NList_Active_Up
        MUIV_NList_Active_Down
        MUIV_NList_Active_PageUp
        MUIV_NList_Active_PageDown

    FUNCTION
        Same function as List.mui/MUIA_List_Active.

    SEE ALSO
        MUIA_NList_Entries, MUIA_NList_First, MUIA_NList_Visible
NList.mcc/MUIA_NList_AdjustHeight

    NAME
        MUIA_NList_AdjustHeight -- [I..], BOOL

    FUNCTION
        Same function as List.mui/MUIA_List_AdjustHeight.

    SEE ALSO
        MUIA_List_AdjustHeight, MUIA_NList_AdjustWidth
NList.mcc/MUIA_NList_AdjustWidth

    NAME
        MUIA_NList_AdjustWidth -- [I..], BOOL

    FUNCTION
        Same function as List.mui/MUIA_List_AdjustWidth.

    SEE ALSO
        MUIA_List_AdjustWidth, MUIA_NList_AdjustHeight
NList.mcc/MUIA_NList_AutoCopyToClip

    NAME
        MUIA_NList_AutoCopyToClip -- [IS.], BOOL

    FUNCTION
        If set to TRUE you can copy the selected area to the
        clipboard 0 with Amiga-C and Amiga-X (Amiga-X because
        i have seen that sometimes Amiga-C is a shortcut !).
        (work with both Right-Amiga and Left-Amiga keys)

        Default to TRUE.

    SEE ALSO
        MUIA_NList_CopyColumnToClipHook, MUIA_NList_CopyEntryToClipHook,
        MUIM_NList_CopyToClip
NList.mcc/MUIA_NList_AutoVisible

    NAME
        MUIA_NList_AutoVisible -- [ISG], BOOL

    FUNCTION
        Same function as List.mui/MUIA_List_AutoVisible.

        Seting this to TRUE, the NList object will automatically and
        always jump to show the active entry.

        Default to FALSE.

    SEE ALSO
        MUIA_List_AutoVisible, MUIA_NList_Active
NList.mcc/MUIA_NList_ClickColumn

    NAME
        MUIA_NList_ClickColumn -- [..G], LONG

    FUNCTION
        Same function as Listview.mui/MUIA_Listview_ClickColumn.

    SEE ALSO
        MUIA_Listview_ClickColumn, MUIA_NList_DefClickColumn
NList.mcc/MUIA_NList_CompareHook

    NAME
        MUIA_NList_CompareHook -- [IS.], struct Hook *

    FUNCTION
        Same function as List.mui/MUIA_List_CompareHook.

        If the h_Data is NULL, NList will set it with its own obj ptr
        before calling the hook, and will reset it to NULL after.

    SEE ALSO
        MUIA_NList_ConstructHook, MUIA_NList_DestructHook
NList.mcc/MUIA_NList_ConstructHook

    NAME
        MUIA_NList_ConstructHook -- [IS.], struct Hook *

        If the h_Data is NULL, NList will set it with its own obj ptr
        before calling the hook, and will reset it to NULL after.

    FUNCTION
        Same function as List.mui/MUIA_List_ConstructHook.

        Think to finish lines entries on a \0 and \n.
        The list will not display anything which come after
        a \n or \0, so finish lines entries on a \0 and \n
        if you dont want to waste memory.

        If the h_Data is NULL, NList will set it with its own obj ptr
        before calling the hook, and will reset it to NULL after.

    SPECIAL INPUTS
        MUIV_NList_ConstructHook_String

        It's a builtin hook that copy a string entry.
        (so original string can be trash after)
        you must set MUIV_NList_DestructHook_String
        too if you use it.

    SEE ALSO
        MUIA_NList_DestructHook, MUIA_NList_DisplayHook
NList.mcc/MUIA_NList_CopyColumnToClipHook

    NAME
        MUIA_NList_CopyColumnToClipHook -- [IS.], struct Hook *

    FUNCTION
        This hook will be called while a MUIM_NList_CopyToClip
        for each column string. You'll certainly get in entry
        a string given by your own MUIA_NList_DisplayHook, so
        you must not use the same buffer for both !

        You'll get the entry num in -1 element of the given array,
        elements 1 and 2 are the positions of the first selected
        char and the last+1.

        You'll get the MUIA_NList_PrivateData pointer in the -2
        element of the array.

        You must return the pointer of the string to copy to
        clipboard in element 0, a the string length in element 1.

        The builtin hook skip all ESC chars plus their next char
        (and [...] for ESC-P, ESC-I, ESC-O and ESC-o), and add a
        tab char between columns.

        If the h_Data is NULL, NList will set it with its own obj ptr
        before calling the hook, and will reset it to NULL after.

    SEE ALSO
        MUIM_NList_CopyToClip, MUIA_NList_CopyEntryToClipHook,
        MUIA_NList_DisplayHook
NList.mcc/MUIA_NList_CopyEntryToClipHook

    NAME
        MUIA_NList_CopyEntryToClipHook -- [IS.], struct Hook *

    FUNCTION
        This work near like MUIA_NList_DisplayHook, execpt
        that's not called when the NList object want to
        display its lines but when he want to copy them
        to clipboard. See MUIM_NList_CopyToClip.

        You can return only one string pointer (only one
        column for copy), as element 0 of the array.

        The -1 element is the entry number only when
        you don't give a entry pointer to NList_CopyToClip method,
        else it's -1.

        You'll get the MUIA_NList_PrivateData pointer in the -2
        element of the array.

        Elements 1,2,3 and 4 of the given array are first column/pos
        and last column/pos which are selected.
        Elements 5 and 6 are 2, 1 or 0 when the 1th and 3rd pos are
        in the format preparse string, the special entry preparse string
        or in the normal string for that entry/columns.

        For column, -1 is the first and -2 the last, else it's its number.
        This is the number of displayed columns and not the corresponding
        entry in the array return by DisplayHook. Anyway, positions are
        calculated from strings returned by DisplayHook.

        For pos, -1 is left of column and -2 its end. The last pos should
        not be kept.

        You should use MUIA_NList_CopyColumnToClipHook unless you don't
        want to be copied what is seen in the list.

        If the h_Data is NULL, NList will set it with its own obj ptr
        before calling the hook, and will reset it to NULL after.

    SEE ALSO
        MUIM_NList_CopyToClip, MUIA_NList_CopyColumnToClipHook,
        MUIA_NList_DisplayHook
NList.mcc/MUIA_NList_DefaultObjectOnClick

    NAME
        MUIA_NList_DefaultObjectOnClick -- [IS.], BOOL

    FUNCTION
        If set to TRUE, the NList object will become the
        MUIA_Window_DefaultObject of its window when you
        click on it, so the user will be able to control
        the list with keys. The MUIA_Window_ActiveObject
        will be set to None, unless the current active
        object is the NList one itself or if it's the
        MUIA_NList_KeepActive one.

        There is a special meaning if you use both
        DefaultObjectOnClick and MUIA_NList_MakeActive.
        (see MUIA_NList_MakeActive)

        Default to FALSE.

    SEE ALSO
        MUIA_NList_KeepActive,MUIA_NList_MakeActive
NList.mcc/MUIA_NList_DefClickColumn

    NAME
        MUIA_NList_DefClickColumn -- [ISG], LONG

    FUNCTION
        Same function as Listview.mui/MUIA_Listview_DefClickColumn.

    SEE ALSO
        MUIA_Listview_DefClickColumn, MUIA_NList_ClickColumn
NList.mcc/MUIA_NList_DestructHook

    NAME
        MUIA_NList_DestructHook -- [IS.], struct Hook *

    FUNCTION
        Same function as List.mui/MUIA_List_DestructHook.

        If the h_Data is NULL, NList will set it with its own obj ptr
        before calling the hook, and will reset it to NULL after.

    SPECIAL INPUTS
        MUIV_NList_DestructHook_String

        It's a builtin hook that free the string entry
        previously allocated and copied by
        the MUIV_NList_ConstructHook_String builtin hook.

    SEE ALSO
        MUIA_NList_ConstructHook, MUIA_NList_DisplayHook
NList.mcc/MUIA_NList_DisplayHook

    NAME
        MUIA_NList_DisplayHook -- [IS.], struct Hook *

    FUNCTION
        Same function as List.mui/MUIA_List_DisplayHook.

        Do not modify the buffers you return in the hook anywhere
        else than in the hook when called by NList.
        (if you do so you MUST set MUIA_NList_DisplayRecall)


        You should return the same thing if its called another
        time with the same inputs !
        The hook will be called with a pointer to the
        entry to be displayed in A1 and a pointer to
        a string array containing as many entries as
        your list may have columns in A2.
        You must fill this array with the strings that
        you want to display.
        The array is DISPLAY_ARRAY_MAX*2 large.
        In the DISPLAY_ARRAY_MAX+colnum element you can set a
        preparse string for the corresponding colnum element.
        Using it you'll be able to avoid copying the string in
        a buffer to add something in the beginning of the column
        string.

        The display hook also gets the position of the current entry
        as additional parameter. It is stored in the longword
        preceding the column array (don't forget it's a LONG).
        (setting that LONG value to -2 is another way to tell the object
        to not consider the return string pointeur as valid next time
        he will want to use it, and he will recall the hook).

        When the hook function will be called to get the title strings,
        you'll get NULL in A1, and -1 as position of current entry.

        You'll get the MUIA_NList_PrivateData pointer in the -2
        element of the array.


        The hook function will be called each time a line (or a part of
        it) need to be drawn (and when NList need to compute lenght of
        columns contents).


        Here are the escape sequence known by the parsing of NList :
              (If you use C, ESC b can be written "\033b")

        \t          Tabulation. Go to the next tab boundary of the column.
                    tab positions are separated by 8 spaces by default.
        ESC -       Disable text engine, following chars will be printed
                    without further parsing.
        ESC u       Set the soft style to underline.
        ESC b       Set the soft style to bold.
        ESC i       Set the soft style to italic.
        ESC n       Set the soft style back to normal.
        ESC <n>     Use pen number n (2..9) as front pen. n must be a valid
                    DrawInfo pen as specified in "intuition/screens.h".
        ESC c       Center current line. only valid at the beginning.
        ESC r       Right justify current line. only valid at the beginning.
        ESC l       Left justify current line. only valid at the beginning.

        These ones are new or modified :

        ESC j       Justify left and right current line. only at beginning.
        ESC I[<s>]                             (ESC I[<s>|<width>|<height>])
                    Draw MUI image with specification <s>.
                    See Image.mui/MUIA_Image_Spec for image spec definition.
                    <width> and <height> should be omited because NList
                    draw the image to its standard size himself now.
        ESC O[<p>]  Draw the MUIM_NList_CreateImage at adress <p>.
                    (<p> should be an 8 hex digits number).
        ESC o[<n>]  Draw the MUIM_NList_UseImage number <n>. If the <n> UseImage
                    don't exist or has been set to NULL, no image is drawn.
        ESC P[]     Use default front pen.
        ESC P[<n>]  Use pen number <n>. (it's a direct pen number, so you must
                    make MUI_ObtainPen and MUI_ReleasePen for it yourself,
                    best to do it is in Setup() and Cleanup() of a subclass).
        ESC T       Draw horizontal line on top of the entry for the column.
        ESC C       Draw horizontal line centered in the entry for the column.
        ESC B       Draw horizontal line on bottom of the entry for the column
        ESC E       Draw horizontal line centered in the entry for the column,
                    but only on the left and right of the line contents.


        with ESC I[], ESC O[] and ESC o[], you can add a [...,<width>] where
        <width> will be the min width in pixels before the next char/string/image.
        <width> must be a decimal number (%ld).

        If the h_Data is NULL, NList will set it with its own obj ptr
        before calling the hook, and will reset it to NULL after.

    SEE ALSO
        MUIA_NList_Format, MUIA_Text_Contents, MUIA_List_DisplayHook,
        MUIA_NList_DisplayRecall
NList.mcc/MUIA_NList_DisplayRecall

    NAME
        MUIA_NList_DisplayRecall -- [.S.], BOOL

    FUNCTION
        If for some unusual reason you modify one of the buffer that
        your DisplayHook function usually return anywhere else than
        in the DisplayHook function when called by the NList object,
        you must set it to TRUE, so the object will know it.

    SEE ALSO
        MUIA_NList_DisplayHook
NList.mcc/MUIA_NList_DoubleClick

    NAME
        MUIA_NList_DoubleClick -- [..GN], BOOL

    FUNCTION
        You'll get a notify on it each time the user double
        clicks on an entry in the list.

        For triple clicks and more, use MUIA_NList_MultiClick.

    SEE ALSO
        MUIA_NList_MultiClick, MUIA_NList_TitleClick, MUIM_NList_TestPos.
NList.mcc/MUIA_NList_DragColumnOnly

    NAME
        MUIA_NList_DragColumnOnly -- [ISG], LONG

    FUNCTION
        When set to a column number (visible number, not the displayhook
        one), only the text of that column for the selected entry will
        be dragged instead of the visible part of the entry.

        Set it to -1 to come back to standard/default mode when you've
        changed it !
NList.mcc/MUIA_NList_DragSortable

    NAME
        MUIA_NList_DragSortable -- [ISG], BOOL

    FUNCTION
        Same function as List.mui/MUIA_List_DragSortable.

        DragType will be MUIV_NList_DragType_Default unless you set it.

        No need for you to set MUIA_Dropable or MUIA_Draggable.
NList.mcc/MUIA_NList_DragType

    NAME
        MUIA_NList_DragType -- [ISG], LONG

    SPECIAL INPUTS
        MUIV_NList_DragType_None        no drag
        MUIV_NList_DragType_Default     as set in prefs.
        MUIV_NList_DragType_Immediate   drag on borders and with qualifier, and
                                        immediate drag if non-multiselect mode.
        MUIV_NList_DragType_Borders     drag on borders and with qualifier.
        MUIV_NList_DragType_Qualifier   drag only using qualifier.

    FUNCTION
        Same function as Listview.mui/MUIA_Listview_DragType.

        If you want the user to be able to drag items out of
        your list, you must set this.
        Don't use MUIA_Draggable with NList or NListview.
NList.mcc/MUIA_NList_DropMark

    NAME
        MUIA_NList_DropMark -- [..G], LONG

    FUNCTION
        Same function as List.mui/MUIA_List_DropMark.

        After a successfull drop operation, this attribute holds
        the position where we should insert the new entry(ies).

    SEE ALSO
        MUIA_NList_DropType, MUIM_NList_DropType, MUIM_NList_DropDraw
NList.mcc/MUIA_NList_DropType

    NAME
        MUIA_NList_DropType -- [..G], LONG

    FUNCTION
        Same function as MUIA_NList_DropMark but will return the
        current DropMark type instead of the DropMark entry number.

        After a successfull drop operation, this attribute holds
        the type of dropmark which where drawn.

    SEE ALSO
        MUIA_NList_DropMark, MUIM_NList_DropType, MUIM_NList_DropDraw
NList.mcc/MUIA_NList_Entries

    NAME
        MUIA_NList_Entries -- [..G], LONG

    FUNCTION
        Same function as List.mui/MUIA_List_Entries.

    SEE ALSO
        MUIA_NList_First, MUIA_NList_Visible, MUIA_NList_Active
NList.mcc/MUIA_NList_EntryValueDependent

    NAME
        MUIA_NList_EntryValueDependent -- [ISG], BOOL

    FUNCTION
        If your display hook return different strings when the
        entry num value change for a identical entry pointer
        then you should set it.

    SEE ALSO
        MUIA_NList_DisplayHook
NList.mcc/MUIA_NList_First

    NAME
        MUIA_NList_First -- [ISG], LONG

    SPECIAL INPUTS
        MUIV_NList_First_Top
        MUIV_NList_First_Bottom
        MUIV_NList_First_Up
        MUIV_NList_First_Down
        MUIV_NList_First_PageUp
        MUIV_NList_First_PageDown

    FUNCTION
        Get the number of the first visible entry.
        You can set it to change the first entry you want to be visible.

    SEE ALSO
        MUIA_NList_Visible, MUIA_NList_Entries, MUIA_NList_Active
NList.mcc/MUIA_NList_ForcePen

    NAME
        MUIA_NList_ForcePen -- [ISG], LONG

    SPECIAL INPUTS
        MUIV_NList_ForcePen_On
        MUIV_NList_ForcePen_Off
        MUIV_NList_ForcePen_Default

    FUNCTION
        Set the ForcePen mode, when on it force the 'selected pen' color
        in all the selected area. Else the color is forced only at the
        beginning of the area and can be changed by text escape sequences.

        The default is set by the user in the pref .mcp class.

        Getting in will give its current value.
NList.mcc/MUIA_NList_Format

    NAME
        MUIA_NList_Format -- [ISG], STRPTR

    FUNCTION
        NList is able handle multi column lists. To define
        how many columns should be displayed and how they
        should be formatted, you specify a format string.

        This format string must contain one entry for each column
        you want to see. Entries are seperated by commas, one
        entry is parsed via dos.library/ReadArgs().

        The template for a single entry looks like this:

        DELTA=D/N,PREPARSE=P/K,COL=C/N,BAR/S,TBAR/S,
        WEIGHT=W/N,MINWIDTH=MIW/N,MAXWIDTH=MAW/N,
        COLWIDTH=CW/N,MINCOLWIDTH=MICW/N,MAXCOLWIDTH=MACW/N,
        PIXWIDTH=PW/N,MINPIXWIDTH=MIPW/N,MAXPIXWIDTH=MAPW/N

    First ones are like (or nearly) MUIA_List_Format ones :

        DELTA
           Space in pixel between this column and the next.
           the last displayed column ignores this setting.
           Defaults to 4.

        PREPARSE
           A preparse string for this column.

        COL
           This value adjusts the number of the current column.
           Defaults to current entry number (0,1,...)

        BAR
           Will draw a vertical bar between this and the next column.

        WEIGHT
           The weight of the column. As for MUI's group.

        MINWIDTH
           Minimum percentage of the list width for the current column.

        MAXWIDTH
           Maximum percentage of the list width for the current column.

    These are new ones :

        TBAR
           Will draw a vertical bar between this and the next column
           but only in the title (ignored if BAR is set).

        COLWIDTH
           Wanted number of chars for the current column.
           You will get as PIXWIDTH with number*font_with.
           Possibly more than number chars will fit in the
           column if you use proportional font, anyway you
           are sure than number non italic chars will fit.

        MINCOLWIDTH
           Minimum number of chars for the current column.

        MAXCOLWIDTH
           Maximum number of chars for the current column.

        PIXWIDTH
           Wanted number of chars for the current column.

        MINPIXWIDTH
           Minimum number of chars for the current column.

        MAXPIXWIDTH
           Maximum number of chars for the current column.

        Note: You will have as many columns in your list as
              entries in the format string (i.e. number of
              commas + 1). Empty entries, e.g. with a format
              string of ",,,," are perfectly ok.

        MINPIXWIDTH, MAXPIXWIDTH, MINCOLWIDTH, MAXCOLWIDTH,
        MINWIDTH and MAXWIDTH will not be used if PIXWIDTH,
        or COLWIDTH is used.

        Only one of PIXWIDTH, COLWIDTH and WEIGHT will be
        used, the first find in this order.
        Biggest of MINPIXWIDTH, MINCOLWIDTH and MINWIDTH.
        Smallest of MAXPIXWIDTH, MAXCOLWIDTH and MAXWIDTH.
        If the min is bigger than the max the min will be used.

        You shoul used PIX ones only for columns with images,
        and COL ones when you want to be sure to get as many
        chars you want.

        All chars/images will be drawn for the last column
        always, you should specify some width for it anyway
        as it will be used for centered and right aligned texts !

        Default values : WEIGHT=100, MINWIDTH=10, MAXWIDTH=1000.
        (using MUIA_List_Format instead MUIA_NList_Format, default
        weight will be -1, like the default of List object)

        Use MINWIDTH=0 if you don't use PIXWIDTH or COLWIDTH and
        don't want any min value.

        If you want to use WEIGHT values as percentage of the list
        width, just choose them to have their total egual to 100.

        WEIGHT = -1 mean that you want the column to have
        the width of the largest entry's column contents.
        MINWIDTH = -1 have the same meaning as for WEIGHT but for
        the min value.
        Be aware that it takes long time to do that when there
        are many entries since this need a call to the dislpayhook,
        parse and find real length of all entries.
        Anyway using such stuff for one or more column has the
        same overhead.

        If BAR or TBAR is set, DELTA will be increase by 2.

        The default list format is an empty string (""), this
        means a one column list without special formatting.

    BUGS
        Currently there is a maximum of 64 columns for a list.

    SEE ALSO
        MUIA_NList_DisplayHook, MUIA_NList_TitleSeparator.
NList.mcc/MUIA_NList_HorizDeltaFactor

    NAME
        MUIA_NList_HorizDeltaFactor -- [..GN], LONG

    FUNCTION
        Used for NListview. You can make a notification on it
        if you want to attach your own horizontal scrollbar
        and set the increment value of scrollbar's arrows :

        DoMethod(NLobj, MUIM_Notify, MUIA_NList_HorizDeltaFactor,MUIV_EveryTime,
          SBobj, 3, MUIM_Set,MUIA_Prop_DeltaFactor,MUIV_TriggerValue);

    SEE ALSO
        MUIA_NList_Horiz_Entries, MUIA_NList_Horiz_First, MUIA_NList_Horiz_Visible
NList.mcc/MUIA_NList_Horiz_Entries

    NAME
        MUIA_NList_Horiz_Entries -- [..GN], LONG

    FUNCTION
        Used for NListview. You can make a notification on it
        if you want to attach your own horizontal scrollbar :

        DoMethod(NLobj, MUIM_Notify, MUIA_NList_Horiz_Entries,MUIV_EveryTime,
          SBobj, 3, MUIM_Set,MUIA_Prop_Entries,MUIV_TriggerValue);

    SEE ALSO
        MUIA_NList_HorizDeltaFactor, MUIA_NList_Horiz_First, MUIA_NList_Horiz_Visible
NList.mcc/MUIA_NList_Horiz_First

    NAME
        MUIA_NList_Horiz_First -- [.SGN], LONG

    FUNCTION
        Used for NListview. You can make a notification on it
        if you want to attach your own horizontal scrollbar :

        DoMethod(NLobj, MUIM_Notify, MUIA_NList_Horiz_First,MUIV_EveryTime,
          SBobj, 3, MUIM_NoNotifySet,MUIA_Prop_First,MUIV_TriggerValue);
        DoMethod(SBobj, MUIM_Notify, MUIA_Prop_First,MUIV_EveryTime,
          NLobj, 3, MUIM_NoNotifySet,MUIA_NList_Horiz_First,MUIV_TriggerValue);

    SEE ALSO
        MUIA_NList_HorizDeltaFactor, MUIA_NList_Horiz_Entries, MUIA_NList_Horiz_Visible
NList.mcc/MUIA_NList_Horiz_Visible

    NAME
        MUIA_NList_Horiz_Visible -- [..GN], LONG

    FUNCTION
        Used for NListview. You can make a notification on it
        if you want to attach your own horizontal scrollbar :

        DoMethod(NLobj, MUIM_Notify, MUIA_NList_Horiz_Visible,MUIV_EveryTime,
          SBobj, 3, MUIM_NoNotifySet,MUIA_Prop_Visible,MUIV_TriggerValue);

    SEE ALSO
        MUIA_NList_HorizDeltaFactor, MUIA_NList_Horiz_Entries, MUIA_NList_Horiz_First
NList.mcc/MUIA_NList_Input

    NAME
        MUIA_NList_Input -- [ISG], BOOL

    FUNCTION
        Same function as NListview.mcc/MUIA_Listview_Input.

    SEE ALSO
        MUIA_NList_MultiSelect
NList.mcc/MUIA_NList_InsertPosition

    NAME
        MUIA_NList_InsertPosition -- [..G], LONG

    FUNCTION
        Same function as List.mui/MUIA_List_InsertPosition.

NList.mcc/MUIA_NList_KeepActive

    NAME
        MUIA_NList_KeepActive -- [.S.], Obj *

    FUNCTION
        Usefull when MUIA_NList_DefaultObjectOnClick if you
        don't want the specified object to be desactivated.
        A NListview object set it to it's NList child at
        creation time, so you should not have to use that tag.

    SEE ALSO
        MUIA_NList_DefaultObjectOnClick,MUIA_NList_MakeActive
NList.mcc/MUIA_NList_ListCompatibility

    NAME
        MUIA_NList_ListCompatibility -- OBSOLETE

    FUNCTION
        Was previously here to be able to get List notifications.

        It's now obsolete because NList now track the asked
        notifications and will make set(...) only for the
        wanted ones.

        List tags are known by NList for set(), get() and notifications.
        (List notifications are known for MUIA_List_Active,
        MUIA_Listview_DoubleClick and MUIA_Listview_SelectChange tags)
NList.mcc/MUIA_NList_MakeActive

    NAME
        MUIA_NList_MakeActive -- [.S.], Obj *

    FUNCTION
        Use it if you want an object to be activated when you click
        in the list object.
        If you want to be able to control the list with key, you
        should use MUIA_NList_DefaultObjectOnClick instead.

        If you use both MUIA_NList_MakeActive and
        MUIA_NList_DefaultObjectOnClick then the specified object
        will be activated only if there is already an active one.

        The only object which should be set should be the NListview
        parent object of the current NList one.

    SEE ALSO
        MUIA_NList_DefaultObjectOnClick,MUIA_NList_KeepActive
NList.mcc/MUIA_NList_MinLineHeight

    NAME
        MUIA_NList_MinLineHeight -- [IS.], LONG

    FUNCTION
        Same function as List.mui/MUIA_List_MinLineHeight.

        Sets the minimum line height for lists in pixels.

        If <= 0 then it's absolute value will replace the
        'Leading' value of prefs which is added to the
        font height.

        It seems that original MUIA_List_MinLineHeight use
        its positive value as a 'leading' one, which is not
        logical when i read its doc (!), so i do the
        change internally to get it works like with list...
NList.mcc/MUIA_NList_MultiClick

    NAME
        MUIA_NList_MultiClick -- [..GN], LONG

    FUNCTION
        You'll get a notify on it each time the user
        multiclicks more than 2 times on an entry in the
        list. You'll get the number of the click (3, 4,
        5...) for each. Note that you'll not get
        MUIA_NList_MultiClick for a double click; you
        must use MUIA_NList_DoubleClick for that.
        The time between each click must be less or equal
        to the double click time set in Amiga Input prefs.

        So you can make a notification on it.

    SEE ALSO
        MUIA_NList_DoubleClick, MUIA_NList_TitleClick, MUIM_NList_TestPos.
NList.mcc/MUIA_NList_MultiSelect

    NAME
        MUIA_NList_MultiSelect -- (V7 ) [I..], LONG

    SPECIAL INPUTS
        MUIV_NList_MultiSelect_None
        MUIV_NList_MultiSelect_Default
        MUIV_NList_MultiSelect_Shifted
        MUIV_NList_MultiSelect_Always

    FUNCTION
        Same function as Listview.mui/MUIA_Listview_MultiSelect.

        < At the moment MultiSelect_Default is the same
        as MultiSelect_Shifted >

    SEE ALSO
        MUIA_NList_MultiTestHook
NList.mcc/MUIA_NList_MultiTestHook

    NAME
        MUIA_NList_MultiTestHook -- [IS.], struct Hook *

    FUNCTION
        Same function as List.mui/MUIA_List_MultiTestHook.

        If the h_Data is NULL, NList will set it with its own obj ptr
        before calling the hook, and will reset it to NULL after.

    SEE ALSO
        MUIA_NList_ConstructHook, MUIA_NList_DestructHook
NList.mcc/MUIA_NList_Pool

    NAME
        MUIA_NList_Pool -- [I..], APTR

    FUNCTION
        Same function as List.mui/MUIA_List_Pool.

    SEE ALSO
        MUIA_NList_PoolPuddleSize, MUIA_NList_PoolThreshSize
NList.mcc/MUIA_NList_PoolPuddleSize

    NAME
        MUIA_NList_PoolPuddleSize -- [I..], ULONG

    FUNCTION
        Same function as List.mui/MUIA_List_PoolPuddleSize.

    SEE ALSO
        MUIA_NList_PoolThreshSize, MUIA_NList_Pool
NList.mcc/MUIA_NList_PoolThreshSize

    NAME
        MUIA_NList_PoolThreshSize -- [I..], ULONG

    FUNCTION
        Same function as List.mui/MUIA_List_PoolThreshSize.

    SEE ALSO
        MUIA_NList_PoolPuddleSize, MUIA_NList_Pool
NList.mcc/MUIA_NList_PrivateData

    NAME
        MUIA_NList_PrivateData -- [ISG], APTR

    FUNCTION
        The pointer you set with this tag will be give to you
        when some of hooks will be called, permitting to use
        private datas in them for example.

        Note that h_Data is set to the obj ptr when hooks are called
        (unless you set it previously) which can be better to get private
        datas in hooks since no one will be able to change it.

    SEE ALSO
        MUIA_NList_DisplayHook, MUIA_NList_CopyEntryToClipHook,
        MUIA_NList_CopyColumnToClipHook
NList.mcc/MUIA_NList_Prop_Entries

    NAME
        MUIA_NList_Prop_Entries -- [..GN], LONG

    FUNCTION
        Used for NListview. You can make a notification on it
        if you want to attach your own vertical scrollbar :

        DoMethod(NLobj, MUIM_Notify, MUIA_NList_Prop_Entries,MUIV_EveryTime,
          SBobj, 3, MUIM_NoNotifySet,MUIA_Prop_Entries,MUIV_TriggerValue);

    SEE ALSO
        MUIA_NList_VertDeltaFactor, MUIA_NList_Prop_First, MUIA_NList_Prop_Visible
NList.mcc/MUIA_NList_Prop_First

    NAME
        MUIA_NList_Prop_First -- [.SGN], LONG

    FUNCTION
        Used for NListview. You can make a notification on it
        if you want to attach your own vertical scrollbar :

        DoMethod(NLobj, MUIM_Notify, MUIA_Prop_First,MUIV_EveryTime,
          SBobj, 3, MUIM_Set,MUIA_Prop_First,MUIV_TriggerValue);
        DoMethod(SBobj, MUIM_Notify, MUIA_Prop_First,MUIV_EveryTime,
          NLobj, 3, MUIM_Set,MUIA_Prop_First,MUIV_TriggerValue);

    SEE ALSO
        MUIA_NList_VertDeltaFactor, MUIA_NList_Prop_Entries, MUIA_NList_Prop_Visible
NList.mcc/MUIA_NList_Prop_Visible

    NAME
        MUIA_NList_Prop_Visible -- [..GN], LONG

    FUNCTION
        Used for NListview. You can make a notification on it
        if you want to attach your own vertical scrollbar :

        DoMethod(NLobj, MUIM_Notify, MUIA_NList_Prop_Visible,MUIV_EveryTime,
          SBobj, 3, MUIM_NoNotifySet,MUIA_Prop_Visible,MUIV_TriggerValue);

    SEE ALSO
        MUIA_NList_VertDeltaFactor, MUIA_NList_Prop_Entries, MUIA_NList_Prop_First
NList.mcc/MUIA_NList_Quiet

    NAME
        MUIA_NList_Quiet -- [.S.], BOOL

    FUNCTION
        Same function as List.mui/MUIA_List_Quiet.

        Think about using it when you insert/remove several entries
        one by one, it will go much faster.

    SEE ALSO
        MUIM_NList_Insert, MUIM_NList_Remove
NList.mcc/MUIA_NList_SelectChange

    NAME
        MUIA_NList_SelectChange -- [...N], BOOL

    FUNCTION
        Same function as Listview.mui/MUIA_Listview_SelectChange.

        A set(NLobj,MUIA_NList_SelectChange,TRUE) is made by NList
        whenever the selection state of one or more items in the
        list is changing.

    SEE ALSO
        MUIA_NList_MultiSelect
NList.mcc/MUIA_NList_ShowDropMarks

    NAME
        MUIA_NList_ShowDropMarks -- [ISG], BOOL

    FUNCTION
        Same function as List.mui/MUIA_List_ShowDropMarks.

    SEE ALSO
        MUIA_NList_DropMark
NList.mcc/MUIA_NList_SkipChars

    NAME
        MUIA_NList_SkipChars -- [ISG], char *

    FUNCTION
        Same function as Floattext.mui/MUIA_Floattext_SkipChars.
NList.mcc/MUIA_NList_SourceArray

    NAME
        MUIA_NList_SourceArray -- [I..], APTR

    FUNCTION
        Same function as List.mui/MUIA_List_SourceArray.
NList.mcc/MUIA_NList_SourceInsert

    NAME
        MUIA_NList_SourceInsert -- [I..], struct MUIP_NList_InsertWrap *

    FUNCTION
        Same as DoMethod(obj,MUIM_NList_InsertWrap,...)
        with ... same as the contents of the passed struct,
        but at init.

    SEE ALSO
        MUIM_NList_InsertWrap
NList.mcc/MUIA_NList_SourceString

    NAME
        MUIA_NList_SourceString -- [I..], char *

    FUNCTION
        Same as
        DoMethod(obj,MUIM_List_Insert,string,-2,MUIV_NList_Insert_Bottom)
        but at init.

    SEE ALSO
        MUIM_List_Insert
NList.mcc/MUIA_NList_TabSize

    NAME
        MUIA_NList_TabSize -- [ISG], ULONG

    FUNCTION
        Same function as Floattext.mui/MUIA_Floattext_TabSize.

        Set how many spaces is the tabulation.

        Default is 8.
NList.mcc/MUIA_NList_Title

    NAME
        MUIA_NList_Title -- [ISG], char *

    FUNCTION
        Same function as List.mui/MUIA_List_Title.

        The title will be redraw each time you set it.

        When you use a display hook, its value is used as a BOOL/LONG
        which can have any value (just not NULL if you want to see it).

        The value returned by get() will be the same than the last one
        given in the set() or at init.

    SEE ALSO
        MUIA_NList_DisplayHook, MUIA_NList_TitleSeparator
NList.mcc/MUIA_NList_TitleClick

    NAME
        MUIA_NList_TitleClick -- [ISGN], LONG

    FUNCTION
        You'll get a notify on it each time the user
        clicks one the title (only if on a column, so not on the
        vertical bar column separator which is used to modify the
        column width with mouse).

        The returned value is the column number.

        If you get that value later, it will still be the latest
        *title* click column that you'll get.

        If you ask for a notify on that tag, or if you set it (with any
        value) the title will act as if each of its column titles were
        separated buttons, notifying that tag when there are released.
        There is no shortkeys for these custom buttons and never be,
        so think to give another way to access the related stuffs.

        Don't ask for customized frames for them :  there are not real
        MUI and separated buttons but directly handled by NList, and if
        found it nice as is.

        The (released) look for those title "buttons" will be better
        if you use MUIA_NList_TitleSeparator and BAR or TBAR for each
        column in the MUIA_NList_Format string.

    SEE ALSO
        MUIM_NList_TestPos, MUIA_NList_DoubleClick, MUIA_NList_MultiClick,
        MUIA_NList_TitleSeparator, MUIA_NList_Format.
NList.mcc/MUIA_NList_TitleSeparator

    NAME
        MUIA_NList_TitleSeparator -- [ISG], BOOL

    FUNCTION
        If you set it, you get an horizontal bar between the
        title and the first visible entry (only when some title
        is visible).

    SEE ALSO
        MUIA_NList_Title
NList.mcc/MUIA_NList_TypeSelect

    NAME
        MUIA_NList_TypeSelect -- [IS.], LONG

    SPECIAL INPUTS
        MUIV_NList_TypeSelect_Line
        MUIV_NList_TypeSelect_Char

    FUNCTION
        Setting this tag you can choose between the classic
        list selection by line, or using a char precision
        selection.

        This should be used only for textviewer like stuff,
        and never for standard lists.
        Anyway its the only way to make direct copytoclip
        of a part of a line...

        Default is MUIV_NList_TypeSelect_Line of course.

    SEE ALSO
        MUIM_NList_Select, MUIM_List_Select
NList.mcc/MUIA_NList_VertDeltaFactor

    NAME
        MUIA_NList_VertDeltaFactor -- [..GN], LONG

    FUNCTION
        Used for NListview. You can make a notification on it
        if you want to attach your own vertical scrollbar
        and set the increment value of scrollbar's arrows :

        DoMethod(NLobj, MUIM_Notify, MUIA_NList_VertDeltaFactor,MUIV_EveryTime,
          SBobj, 3, MUIM_Set,MUIA_Prop_DeltaFactor,MUIV_TriggerValue);

    SEE ALSO
        MUIA_NList_Prop_Entries, MUIA_NList_Prop_First, MUIA_NList_Prop_Visible
NList.mcc/MUIA_NList_Visible

    NAME
        MUIA_NList_Visible -- [..G], LONG

    FUNCTION
        Same function as List.mui/MUIA_List_Visible.

    SEE ALSO
        MUIA_NList_First, MUIA_NList_Entries, MUIA_NList_Active
NList.mcc/MUIA_NList_XXXBackground

    NAME
        MUIA_NList_TitleBackground -- [ISG], LONG
        MUIA_NList_ListBackground -- [ISG], LONG
        MUIA_NList_SelectBackground -- [ISG], LONG
        MUIA_NList_CursorBackground -- [ISG], LONG
        MUIA_NList_UnselCurBackground -- [ISG], LONG

    FUNCTION
        You can set all backgroungs of NList with these attributes,
        look at Area.mui/MUIA_Background and Image.mui/MUIA_Image_Spec
        to see what kind of value can be used.
        Anyway, you can set the defaults with prefs and so should
        not set it yourself.
NList.mcc/MUIA_NList_XXXPen

    NAME
        MUIA_NList_TitlePen -- [ISG], LONG
        MUIA_NList_ListPen -- [ISG], LONG
        MUIA_NList_SelectPen -- [ISG], LONG
        MUIA_NList_CursorPen -- [ISG], LONG
        MUIA_NList_UnselCurPen -- [ISG], LONG

    FUNCTION
        You can set all pens of NList with these attributes,
        look at Area.mui/MUIA_Background and Image.mui/MUIA_Image_Spec
        to see what kind of value can be used.
        Anyway, you can set the defaults with prefs and so should
        not set it yourself.
NList.mcc/MUIM_NList_Clear

    NAME
        MUIM_NList_Clear --

    SYNOPSIS
        DoMethod(obj,MUIM_NList_Clear,);

    FUNCTION
        Same function as List.mui/MUIM_List_Clear.

    SEE ALSO
        MUIM_NList_Insert, MUIA_NList_DestructHook
NList.mcc/MUIM_NList_CopyTo

    NAME
        MUIM_NList_CopyTo --

    SYNOPSIS
        DoMethod(obj,MUIM_NList_CopyTo, LONG pos, char *filename,
                                        APTR *result, APTR *entries);

    FUNCTION
        Do a copy to clipboard from some list entries or strings.

    INPUTS
        pos      entry number to be copied.
                 if MUIA_NList_CopyToClipHook is specified, it's what
                 it will return which will be copied instead of just
                 using the entry pointer as a string pointer.

                 special values :

            MUIV_NList_CopyTo_Active    copy list active entry
            MUIV_NList_CopyTo_Selected  copy list selected entries
            MUIV_NList_CopyTo_All       copy all list entries
            MUIV_NList_CopyTo_Entries   copy specified entries
            MUIV_NList_CopyTo_Entry     copy specified entry

            a "\n" will be insert after each entry contents.

        filename name of the file to copy to. If NULL then the copy will be
                 done to a string (strptr).
        result   LONG pointer which fill be filled with MUIV_NLCT_Success if
                 no error occured while opening and writing in the file, else
                 it will be filled with MUIV_NLCT_OpenErr, MUIV_NLCT_WriteErr
                 or MUIV_NLCT_Failed (failed somewhere when making copy data).

                 if filename is NULL, result will be filled with a string pointer
                 to a string allocated by AllocVec(). Datas will have been copied
                 in that string. YOU'LL HAVE TO FREE TAHT string pointer YOURSELF,
                 with a FreeVec(). If the returned string pointer is NULL then
                 the copy failed.
        entries  pointer to some entry, string, entries array or string array.
                 Its use depend on the pos value :
                 if MUIV_NList_CopyTo_Entry   then it's an entry pointer.
                 if MUIV_NList_CopyTo_Entries then it's an entry pointer
                                              array NULL terminated.
                 else :  not used, set to NULL.

    EXEMPLES
        LONG result = 0;
        DoMethod(obj,MUIM_NList_CopyTo, 5, "RAM:test.txt", &result, NULL, NULL);

          will copy the 5th entry to file RAM:test.txt, using
          MUIA_NList_CopyToClipHook if set.


        LONG result = 0;
        DoMethod(obj,MUIM_NList_CopyTo, MUIV_NList_CopyToClip_Selected,
                                            "PRT:", &result, NULL, NULL);
          will copy all selected entries to printer, using
          MUIA_NList_CopyToClipHook for each if set.


        char *strptr = NULL;
        DoMethod(obj,MUIM_NList_CopyTo, MUIV_NList_CopyTo_All,
                                            NULL, &strptr, NULL, NULL);
          will copy all list entries to the string returned in strptr.
          you must make a FreeVec(strptr) by yourself after.

    SEE ALSO
        MUIM_NList_CopyToClip, MUIA_NList_CopyToClipHook
NList.mcc/MUIM_NList_CopyToClip

    NAME
        MUIM_NList_CopyToClip --

    SYNOPSIS
        DoMethod(obj,MUIM_NList_CopyToClip, LONG pos, ULONG clipnum,
                                            APTR *entries, struct Hook *hook);

    FUNCTION
        Do a copy to clipboard from some list entries or strings.

    INPUTS
        pos      entry number to be copied.
                 if MUIA_NList_CopyToClipHook is specified, it's what
                 it will return which will be copied instead of just
                 using the entry pointer as a string pointer.

                 special values :

            MUIV_NList_CopyToClip_Active    copy list active entry
            MUIV_NList_CopyToClip_Selected  copy list selected entries
            MUIV_NList_CopyToClip_All       copy all list entries
            MUIV_NList_CopyToClip_Entries   copy specified entries
            MUIV_NList_CopyToClip_Entry     copy specified entry
            MUIV_NList_CopyToClip_Strings   copy specified strings using hook
            MUIV_NList_CopyToClip_String    copy specified string using hook

            a "\n" will be insert after each entry contents, for all but
            MUIV_NList_CopyToClip_Strings and MUIV_NList_CopyToClip_String.

        clipnum  clipboard number to copy to.
        entries  pointer to some entry, string, entries array or string array.
                 Its use depend on the pos value :
                 if MUIV_NList_CopyToClip_Entry   then it's an entry pointer.
                 if MUIV_NList_CopyToClip_Entries then it's an entry pointer
                                                  array NULL terminated.
                 if MUIV_NList_CopyToClip_String  then it's a string pointer.
                 if MUIV_NList_CopyToClip_Strings then it's an string pointer
                                                  array NULL terminated.
                 else :  not used, set to NULL.
        hook     hook function which will be used (if not NULL) for
                 MUIV_NList_CopyToClip_Strings and
                 MUIV_NList_CopyToClip_String
                 instead of MUIA_NList_CopyToClipHook
                 Should be NULL most of time.

    EXEMPLES
        DoMethod(obj,MUIM_NList_CopyToClip, 5, 0, NULL, NULL);
          will copy the 5th entry to clipboard 0, using
          MUIA_NList_CopyToClipHook if set.

        DoMethod(obj,MUIM_NList_CopyToClip, MUIV_NList_CopyToClip_Selected,
                                            0, NULL, NULL);
          will copy all selected entries to clipboard 0, using
          MUIA_NList_CopyToClipHook for each if set.

        DoMethod(obj,MUIM_NList_CopyToClip, MUIV_NList_CopyToClip_String,
                                            0, "my string", NULL);
          will copy "my string" to clipboard 0.

    NOTE
        MUIV_NList_CopyToClip_Strings and MUIV_NList_CopyToClip_String
        are here to permit simple text copy to clipboard for non nlist
        object related stuff (anyway a NList object must be here to use
        them...). They can use their own hook instead of nlist one if
        non NULL, anyway look at MUIA_NList_CopyToClipHook to see how
        this hook will be used.

    SEE ALSO
        MUIA_NList_CopyToClipHook, MUIA_NList_CopyToClip_Key, MUIM_NList_CopyTo
NList.mcc/MUIM_NList_CreateImage

    NAME
        MUIM_NList_CreateImage --

    SYNOPSIS
        DoMethod(obj,MUIM_NList_CreateImage,Object *imgobj, ULONG flags);

    FUNCTION
        Same function as List.mui/MUIM_List_CreateImage.

        Any transparent color in the source Bitmap/Bodychunk
        object will work.

        You must use MUIM_NList_CreateImage in Setup() or after
        and MUIM_NList_DeleteImage in Cleanup() or before,
        because the mri of the NList object must be valid.
        Setup() and Cleanup() are the best because MUI_ObtainPen()
        and MUI_ReleasePen() are used, and then pens will be
        released while iconification and will be re-obtained
        if the screen change.

        Take a look at MUIM_NList_UseImage which is far easier to
        use.

        Currently flags is not used if you use MUIM_List_CreateImage
        but only with MUIM_NList_CreateImage.
        The flags value must be 0 when the imgobj is a Bitmap/Bodychunk.
        If flags is ~0L, then it's a special case and the imgobj
        can (nearly) be any object, but :
        - the object MUST NOT test and use user inputs, the object
          should just be able to draw itself within the _left(obj),
          _top(obj), _width(obj) and height(obj) it will have when its
          Draw method is called.
        - the object class MUST NOT be Group or subclass of it.
        - the given imgobj must not be attached to any group object
          anywhere else, because a ADDMEMBER will be done with it.
        - Each imgobj can be used with one and only one NList object.
        - the NList object will dispose imgobj itself, so don't dispose it yourself.
        - you can use the return pointer with ESC O[<ptr>] and ESC o[<num>].
        - the object will receive two tags just before its Draw method will
          be called : set(imgobj,MUIA_NLIMG_EntryCurrent,current_entry_number) and
          set(imgobj,MUIA_NLIMG_EntryHeight,height_of_each_entry_of_the_list)
          which are usefull in some case to draw things (see demo example).
        - a new stuff is to use it with ESC O[<ptr>;<tag>;<value>], in that case
          a set(imgobj,tag,value) will be done just before drawing it, so
          you can make an object which will draw different things when that tag
          value is changed. Setting this tag MUST NOT make the object being
          redrawn !!!
          <tag> and <value> must both be in hexadecimal (%lx).
        - if you use ;<tag>;<value> in one ESC sequence for an imgobj, you must
          use it everywhere you use that imgobj because there is no default for it.
        - The imgobj height will always be set to the entries height.
        - The mindefheight of imgobj will become the min height for entries.
        - Think it's still a new testing stuff...
        Look the demo program to see a way to use it...

    RESULT
        The result you get is a struct BitMapImage pointer which
        will exist between the MUIM_NList_CreateImage and
        MUIM_NList_DeleteImage, with a valid bitmap, width and
        height for the current screen.
        The only thing you should do with it is to include it in
        \33O[%08lx]. The result may be NULL in which case NList
        was unable to create the image, but the \33O[] combination
        simply draws nothing when receiving a NULL.

        ATTENTION:
        The returned pointer doesn't give the same structure than
        MUIM_List_CreateImage would do : both are not compatible !

    SEE ALSO
        MUIM_NList_DeleteImage, MUIM_NList_UseImage
NList.mcc/MUIM_NList_DeleteImage

    NAME
        MUIM_NList_DeleteImage --

    SYNOPSIS
        DoMethod(obj,MUIM_NList_DeleteImage,APTR listimg);

    FUNCTION
        Same function as List.mui/MUIM_List_DeleteImage.

        Delete the image pointer returned from MUIM_NList_CreateImage.
        Read explains in MUIM_NList_CreateImage.

    SEE ALSO
        MUIM_NList_CreateImage, MUIM_NList_UseImage
NList.mcc/MUIM_NList_DropDraw

    NAME
        MUIM_NList_DropDraw --

    SYNOPSIS
        DoMethod(obj,MUIM_NList_DropDraw, LONG pos, LONG type,
                                          LONG minx,LONG maxx,LONG miny,LONG maxy);

    FUNCTION
        This method MUST NOT be called directly !

        It will be called by NList, and will draw the drop mark previously fixed
        (pos and type) by MUIM_NList_DropType within the minx, maxx, miny, maxy
        in the _rp(obj) rasport. You must not draw outside of the given box,
        because only the corresponding NList entry will be refreshed to erase what
        is drawn in that method.

        Calling the supermethod (so the builtin MUIM_NList_DropDraw method) will draw
        the standard dropmark specified by (type & MUIV_NList_DropType_Mask), so
        MUIV_NList_DropType_None,MUIV_NList_DropType_Above,MUIV_NList_DropType_Below
        or MUIV_NList_DropType_Onto.

        You can draw directly in the rastport (or a clone of it) in that method,
        because it will be called from the Draw method within the DragReport in
        Refresh mode.

    SEE ALSO
        MUIM_NList_DropType, MUIA_NList_DropType, MUIA_NList_DropMark
NList.mcc/MUIM_NList_DropType

    NAME
        MUIM_NList_DropType --

    SYNOPSIS
        DoMethod(obj,MUIM_NList_DropType, LONG *pos,LONG *type,
                                          LONG minx,LONG maxx,LONG miny,LONG maxy,
                                          LONG mousex,LONG mousey);

    FUNCTION
        This method MUST NOT be called directly !

        It will be called by NList while the DragReport, with default *pos and *type
        values depending on the drag pointer position that you can modify as you want.

        Default *type can be MUIV_NList_DropType_Above or MUIV_NList_DropType_Below.
        You can change it to any of MUIV_NList_DropType_None,MUIV_NList_DropType_Above,
        MUIV_NList_DropType_Below and MUIV_NList_DropType_Onto if you want, using
        the mouse position and the entry box.

        You can make you own *type value as soon as you don't set it in
        MUIV_NList_DropType_Mask, and so draw what you want depending on that value
        in the MUIM_NList_DropDraw method.

        Note that any MUIV_NList_DropType_Below *type will be changed to
        MUIV_NList_DropType_Above with a *pos incremented by 1 just after the
        return of that method.

        If you change the *pos, the list will be scrolled to see it (if the value is
        correct).

        getting MUIA_NList_DropType or MUIA_NList_DropMark will return the same values
        as *pos and *type.

        If your subclass is a direct NList subclass, then there is no need to call
        the superclass which done nothing at all !

    SEE ALSO
        MUIM_NList_DropDraw, MUIA_NList_DropType, MUIA_NList_DropMark
NList.mcc/MUIM_NList_Exchange

    NAME
        MUIM_NList_Exchange --

    SYNOPSIS
        DoMethod(obj,MUIM_NList_Exchange,LONG pos1, LONG pos2);

    FUNCTION
        Same function as List.mui/MUIM_List_Exchange.

        Exchange two entries in a NList object.

    INPUTS
        pos1 - number of the first entry.
        pos2 - number of the second entry.

        MUIV_NList_Exchange_Top
        MUIV_NList_Exchange_Active
        MUIV_NList_Exchange_Bottom
        MUIV_NList_Exchange_Next      only valid for second parameter
        MUIV_NList_Exchange_Previous  only valid for second parameter

    SEE ALSO
        MUIM_NList_Insert, MUIM_NList_Remove, MUIM_NList_Move
NList.mcc/MUIM_NList_GetEntry

    NAME
        MUIM_NList_GetEntry --

    SYNOPSIS
        DoMethod(obj,MUIM_NList_GetEntry,LONG pos, APTR *entry);

    FUNCTION
        Same function as List.mui/MUIM_List_GetEntry.

    SPECIAL INPUTS
        MUIV_NList_GetEntry_Active    give active entry (or NULL if none)

    SEE ALSO
        MUIM_NList_Insert, MUIM_NList_Remove, MUIM_NList_GetEntryInfo
NList.mcc/MUIM_NList_GetEntryInfo

    NAME
        MUIM_NList_GetEntryInfo --

    SYNOPSIS
        DoMethod(obj,MUIM_NList_GetEntryInfo,struct MUI_NList_GetEntryInfo *res);

    FUNCTION
        You get usefull informations about some entry from its number,
        or from the real line number which can be different when there
        is word wrap in the list.

    INPUTS
        res - pointer to a MUI_NList_GetEntryInfo struct :
              LONG pos;       number of entry you want info about */
              LONG line;      real line number */
              LONG entry_pos; entry number of returned entry ptr */
              APTR entry;     entry pointer */
              LONG wrapcol;   NOWRAP, WRAPCOLx, or WRAPPED|WRAPCOLx */
              LONG charpos;   start char number in string (unused if NOWRAP) */
              LONG charlen;   string lenght (unused if NOWRAP) */

              if pos is MUIV_NList_GetEntryInfo_Line then the method will
              use the line number to search infos, else line will be set
              to its correct number for the value of pos.
              entry is the entry ptr, think that if it's a word wrapped
              entry then it come from the returned entry_pos entry.
              Think too that if wrapcol tell you that it's a WRAPPED entry,
              only the WRAPCOLx column is drawn, from the charpos position
              in the string returned by DisplayHook for the column and for
              entry_pos/entry.

    SEE ALSO
        MUIM_NList_GetEntry
NList.mcc/MUIM_NList_GetSelectInfo

    NAME
        MUIM_NList_GetSelectInfo --

    SYNOPSIS
        DoMethod(obj,MUIM_NList_GetSelectInfo,struct MUI_NList_GetSelectInfo *res);

    FUNCTION
        You get usefull informations about selected entries state.

    INPUTS
        res - pointer to a MUI_NList_GetSelectInfo struct :
            LONG start      num of first selected *REAL* entry/line (first of wrapped from which start is issued)
            LONG end        num of last selected *REAL* entry/line (first of wrapped from which start is issued)
            LONG num        not used
            LONG start_col  column of start of selection in 'start' entry
            LONG end_col    column of end of selection in 'end' entry
            LONG start_pos  char pos of start of selection in 'start_col' entry
            LONG end_pos    char pos of end of selection in 'end_col' entry
            LONG vstart     num of first visually selected entry (ie can be the 2nd or 3rd line of a word wrap entry)
            LONG vend       num of last visually selected entry (ie can be the 2nd or 3rd line of a word wrap entry)
            LONG vnum       number of visually selected entries

    NOTE
        If no entry is selected, then start, end, vstart, vend are -1, vnum is 0.

        When start_col, end_col, start_pos, end_pos are -1 then the whole line/entry/column
        is selected.

        start_col, end_col, start_pos and end_pos have the same meaning than
        parameters passed to the MUIA_NList_CopyEntryToClipHook.

        remember than in case of automatically added word wrapped entries, only
        the concerned column have any contents. You get that case for 'vstart'
        when 'start' is different, and for 'end' when 'vend' is different.
NList.mcc/MUIM_NList_Insert

    NAME
        MUIM_NList_Insert --

    SYNOPSIS
        DoMethod(obj,MUIM_NList_Insert,APTR *entries, LONG count, LONG pos);

    FUNCTION
        Same function as List.mui/MUIM_List_Insert.

        Entry (display) contents will be display until \0 or \n.

        You can insert a multiline string with count==-2.

    INPUTS
        entries - pointer to an array of pointers to be inserted.
                  Warning: This is a pointer to a pointer.

                  It's a pointer to string if count==-2.

        count   - Number of elements to be inserted. If count==-1,
                  entries will be inserted until NULL pointer in
                  the entries array is found.

                  If count==-2 then entries must be a string pointer
                  which can be multiline with \n separators. You'll
                  get as many entries inserted as lines in the string.
                  The end char is \0.

        pos     - New entries will be added in front of this entry.
                MUIV_NList_Insert_Top     insert as first entry.
                MUIV_NList_Insert_Active  insert in front of the active entry.
                MUIV_NList_Insert_Sorted  insert sorted (all entries will be
                                          sorted if necessary).
                MUIV_NList_Insert_Bottom  insert as last entry.

    SEE ALSO
        MUIM_NList_Remove, MUIA_NList_ConstructHook, MUIM_NList_InsertSingle
        MUIM_NList_InsertSingleWrap, MUIM_NList_InsertWrap
NList.mcc/MUIM_NList_InsertSingle

    NAME
        MUIM_NList_InsertSingle --

    SYNOPSIS
        DoMethod(obj,MUIM_NList_InsertSingle,APTR entry, LONG pos);

    FUNCTION
        Same function as List.mui/MUIM_List_InsertSingle.

    INPUTS
        entry   - item to insert.

        pos     - New entry will be added in front of this entry.
                MUIV_NList_Insert_Top     insert as first entry.
                MUIV_NList_Insert_Active  insert in front of the active entry.
                MUIV_NList_Insert_Sorted  insert sorted (all entries will be
                                          sorted if necessary).
                MUIV_NList_Insert_Bottom  insert as last entry.

    SEE ALSO
        MUIM_NList_Remove, MUIA_NList_ConstructHook, MUIM_NList_Insert,
        MUIM_NList_InsertSingleWrap, MUIM_NList_InsertWrap
NList.mcc/MUIM_NList_InsertSingleWrap

    NAME
        MUIM_NList_InsertSingleWrap --

    SYNOPSIS
        DoMethod(obj,MUIM_NList_InsertSingleWrap,
                      APTR entry, LONG pos, LONG wrapcol, LONG align);

    FUNCTION
        Same function as MUIM_NList_InsertSingle but permit word wrap
        and alignement for the entry.

    INPUTS
        entry   - item to insert.

        pos     - New entry will be added in front of this entry.
                MUIV_NList_Insert_Top     insert as first entry.
                MUIV_NList_Insert_Active  insert in front of the active entry.
                MUIV_NList_Insert_Sorted  insert sorted (all entries will be
                                          sorted if necessary).
                MUIV_NList_Insert_Bottom  insert as last entry.

        wrapcol - WRAPCOL0 to WRAPCOL6. You can't ask word wrap for an
                other column. NOWRAP if you don't want word wrap.

        align   - ALIGN_LEFT, ALIGN_CENTER, ALIGN_RIGHT or ALIGN_JUSTIFY.
                be aware that align will be used if there is no escape
                align sequence in the preparses or column entry string.

    SEE ALSO
        MUIM_NList_Remove, MUIA_NList_ConstructHook, MUIM_NList_Insert,
        MUIM_NList_InsertSingle, MUIM_NList_InsertWrap
NList.mcc/MUIM_NList_InsertWrap

    NAME
        MUIM_NList_InsertWrap --

    SYNOPSIS
        DoMethod(obj,MUIM_NList_InsertWrap, APTR *entries,
                      LONG count, LONG pos, LONG wrapcol, LONG align);

    FUNCTION
        Same function as MUIM_NList_Insert but permit word wrap and
        alignement for the entry.

    INPUTS
        entries - pointer to an array of pointers to be inserted.
                  Warning: This is a pointer to a pointer.

                  It's a pointer to string if count==-2.

        count   - Number of elements to be inserted. If count==-1,
                  entries will be inserted until NULL pointer in
                  the entries array is found.

                  If count==-2 then entries must be a string pointer
                  which can be multiline with \n separators. You'll
                  get as many entries inserted as lines in the string.
                  The end char is \0.

        pos     - New entry will be added in front of this entry.
                MUIV_NList_Insert_Top     insert as first entry.
                MUIV_NList_Insert_Active  insert in front of the active entry.
                MUIV_NList_Insert_Sorted  insert sorted (all entries will be
                                          sorted if necessary).
                MUIV_NList_Insert_Bottom  insert as last entry.

        wrapcol - WRAPCOL0 to WRAPCOL6. You can't ask word wrap for an
                other column. NOWRAP if you don't want word wrap.

        align   - ALIGN_LEFT, ALIGN_CENTER, ALIGN_RIGHT or ALIGN_JUSTIFY.
                be aware that align will be used if there is no escape
                align sequence in the preparses or column entry string.

    SEE ALSO
        MUIM_NList_Remove, MUIA_NList_ConstructHook, MUIM_NList_Insert,
        MUIM_NList_InsertSingle, MUIM_NList_InsertSingleWrap
NList.mcc/MUIM_NList_Jump

    NAME
        MUIM_NList_Jump --

    SYNOPSIS
        DoMethod(obj,MUIM_NList_Jump,LONG pos);

    FUNCTION
        Same function as List.mui/MUIM_List_Jump.

    INPUTS
        pos - Number of the entry that should be made visible.
              Use MUIV_NList_Jump_Active to jump to the active
              entry.

    SEE ALSO
        MUIA_NList_Active, MUIA_NList_First
NList.mcc/MUIM_NList_Move

    NAME
        MUIM_NList_Move --

    SYNOPSIS
        DoMethod(obj,MUIM_NList_Move,LONG from, LONG to);

    FUNCTION
        Same function as List.mui/MUIM_List_Move.

    INPUTS
        pos1 - number of the first entry.
        pos2 - number of the second entry.

        Possible special values :

        MUIV_NList_Move_Top
        MUIV_NList_Move_Active
        MUIV_NList_Move_Bottom
        MUIV_NList_Move_Next        only valid for second parameter
                                    if first one is not Move_Selected
        MUIV_NList_Move_Previous    only valid for second parameter
                                    if first one is not Move_Selected
        MUIV_NList_Move_Selected    only valid for first parameter

    SEE ALSO
        MUIM_NList_Insert, MUIM_NList_Remove, MUIM_NList_Exchange
NList.mcc/MUIM_NList_NextSelected

    NAME
        MUIM_NList_NextSelected --

    SYNOPSIS
        DoMethod(obj,MUIM_NList_NextSelected,LONG *pos);

    FUNCTION
        Same function as List.mui/MUIM_List_NextSelected.

        In TypeSelect_Char mode you'll get all entries of the selected
        area, even the first and last which can be very partially selected.

    INPUTS
        pos - a pointer to longword that will hold the number
              of the returned entry. Must be set to
              MUIV_NList_NextSelected_Start at start of iteration.
              Is set to MUIV_NList_NextSelected_End when iteration
              is finished.

    SEE ALSO
        MUIM_NList_Select
NList.mcc/MUIM_NList_Redraw

    NAME
        MUIM_NList_Redraw --

    SYNOPSIS
        DoMethod(obj,MUIM_NList_Redraw,LONG pos);

    FUNCTION
        Same function as List.mui/MUIM_List_Redraw.

    INPUTS
        pos - Number of the line to redraw. When the line is not
              currently visible, nothing will happen. Specials:
              MUIV_NList_Redraw_Active   redraw the active line (if any),
              MUIV_NList_Redraw_All      redraw all lines.

NList.mcc/MUIM_NList_Remove

    NAME
        MUIM_NList_Remove --

    SYNOPSIS
        DoMethod(obj,MUIM_NList_Remove,LONG pos);

    FUNCTION
        Same function as List.mui/MUIM_List_Remove.

    INPUTS
        pos - number of the entry to be removed or one of
              MUIV_NList_Remove_First
              MUIV_NList_Remove_Active
              MUIV_NList_Remove_Selected
              MUIV_NList_Remove_Last
              When the active or a selected entry is removed,
              the following entry will become active.
              When the active is the removed and is the last,
              the new last become active.

    SEE ALSO
        MUIM_NList_Insert, MUIA_NList_DestructHook
NList.mcc/MUIM_NList_ReplaceSingle

    NAME
        MUIM_NList_ReplaceSingle --

    FUNCTION
        DoMethod(obj,MUIM_NList_ReplaceSingle,
                      APTR entry, LONG pos, LONG wrapcol, LONG align);

    FUNCTION
        Same function as MUIM_NList_InsertSingleWrap but replace an existing
        entry rather than inserting.
        It's better to do a direct replace than remove then insert it !

    INPUTS
        entry   - item to insert.

        pos     - New entry will be added in front of this entry.
                MUIV_NList_Insert_Top     insert as first entry.
                MUIV_NList_Insert_Active  insert in front of the active entry.
                MUIV_NList_Insert_Sorted  insert sorted (all entries will be
                                          sorted if necessary).
                MUIV_NList_Insert_Bottom  insert as last entry.

        wrapcol - WRAPCOL0 to WRAPCOL6. You can't ask word wrap for an
                other column. NOWRAP if you don't want word wrap.

        align   - ALIGN_LEFT, ALIGN_CENTER, ALIGN_RIGHT or ALIGN_JUSTIFY.
                be aware that align will be used if there is no escape
                align sequence in the preparses or column entry string.

    SEE ALSO
        MUIM_NList_Remove, MUIM_NList_InsertSingleWrap
NList.mcc/MUIM_NList_Select

    NAME
        MUIM_NList_Select --

    SYNOPSIS
        DoMethod(obj,MUIM_NList_Select,LONG pos, LONG seltype, LONG *state);

    FUNCTION
        Same function as List.mui/MUIM_List_Select when in TypeSelect_Line mode.

        In TypeSelect_Char mode, MUIV_NList_Select_Off will clear the selected
        area (don't look what is pos). MUIV_NList_Select_On will select the
        pos entry only (can be MUIV_NList_Select_Active or MUIV_NList_Select_All).
        MUIV_NList_Select_Ask will give the number off entry in the selected area.

    INPUTS

        pos     - Number of the entry or
                  MUIV_NList_Select_Active  for the active entry.
                  MUIV_NList_Select_All     for all entries.

        seltype - MUIV_NList_Select_Off     unselect entry.
                  MUIV_NList_Select_On      select entry.
                  MUIV_NList_Select_Toggle  toggle entry.
                  MUIV_NList_Select_Ask     just ask about the state.

        state   - Pointer to a longword. If not NULL, this will
                  be filled with the current selection state.

    SEE ALSO
        MUIA_NList_TypeSelect, MUIA_NList_MultiTestHook
NList.mcc/MUIM_NList_Sort

    NAME
        MUIM_NList_Sort --

    SYNOPSIS
        DoMethod(obj,MUIM_NList_Sort,);

    FUNCTION
        Same function as List.mui/MUIM_List_Sort.

    SEE ALSO
        MUIA_NList_CompareHook
NList.mcc/MUIM_NList_TestPos

    NAME
        MUIM_NList_TestPos --

    SYNOPSIS
        DoMethod(obj,MUIM_NList_TestPos,LONG x, LONG y, struct MUI_NList_TestPos_Result *res);

    FUNCTION
        Find out which informations of a list which is currently
        displayed at a certain position.

        You must give a pointer to a valid MUI_NList_TestPos_Result struct.

        Set x AND y to MUI_MAXMAX to get infos about the last click position !

        See NList_mcc.h to know what values will be set in the struct.

        Preset char_number to -2 in the struct to not get char_number and char_xoffset
        informations. It's usefull if you don't need them because it will be
        faster for the method without finding them. the -2 value will stay valid
        for next call.

        You'll get char number from what you return from the DisplayHook if there is
        one, else from the beginning of the string/entry ptr.

        Be aware: if you use MUIM_List_TestPos you have to give a pointer to a
        struct MUI_List_TestPos_Result, and you'll get same infos as using a List object.
        It wasn't done as is before, makeing enforcer hits when trying to use NList
        or NFloattext with a Listview instead of a NListview (avoid it please, it's not
        done for it as Listview try to make many things itself, with possible conficts),
        because struct MUI_NList_TestPos_Result is bigger !!!
NList.mcc/MUIM_NList_UseImage

    NAME
        MUIM_NList_UseImage --

    SYNOPSIS
        DoMethod(obj,MUIM_NList_UseImage,Object *obj, ULONG imgnum, ULONG flags);

    FUNCTION
        If you want to use MUIM_NList_CreateImage/MUIM_NList_DeleteImage
        as you should, you must make a NList subclass which call them
        from Setup() and Cleanup(), and it's sometime complicated.

        To avoid that, you can use MUIM_NList_UseImage. NList will
        store the Bitmap/Bodychunk object you give and will make
        CreateImage and DeleteImage itself !

        MUIM_NList_UseImage can use same object as MUIM_NList_CreateImage !

        NULL is a valid obj. It will erase any previously UseImage
        with the same imgnum.

        The imgnum you give is the number that you will use in
        \33o[<n>] sequence as the <n> number.
        MUIM_NList_UseImage will accept 0 <= imgnum < 8192, anyway
        use small value if you can because an array will be allocated
        with the biggest imgnum value as size to store the
        Bitmap/Bodychunk objects.

        DoMethod(obj,MUIM_NList_UseImage,NULL, -1, 0) will set NULL to
        all stored objects, so you'll be able to dispose your
        Bitmap/Bodychunk objects if you want, without waiting the NList
        objet dispose.

        flags is the same than for MUIM_NList_CreateImage (0 unless special case).

    RESULT
        TRUE if succeeded to store the obj (and allocate the array
        if needed), else FALSE.

        There is no way to know if the MUIM_NList_CreateImage
        needed to draw will succeed/has succeeded.

        ATTENTION:
        The given Bitmap/Bodychunk object MUST be valid until the
        NList object is disposed or you set another object (or NULL)
        at the same imgnum !
        The Bitmap/Bodychunk object can be shared with other NList
        object because NList just use it to get informations, anyway
        you mustn't change informations of that object. If you to do
        so, do a UseImage,NULL,x , change it then do UseImage,imgobj,x
        again.

    SEE ALSO
        MUIM_NList_CreateImage, MUIM_NList_DeleteImage
NList.mcc/MUIM_NList_QueryBeginning

    NAME
        MUIM_NList_QueryBeginning -- Obsolete

    SYNOPSIS
        DoMethod(obj,MUIM_NList_QueryBeginning);

    FUNCTION
        This method is now obsolete and does nothing.
