/* NList.mcc (c) Copyright 1996-1997 by Gilles Masson Registered MUI class, Serial Number: 1d51 $9d510030 to $9d51009F *** use only YOUR OWN Serial Number for your public custom class *** NList_mcc.h AmigaE module for NList Converted from C includes by Piotr Pawlow (PP/UNION) Contact me at: Piotr Pawlow Lewartowskiego 12/46 00-185 Warszawa Poland EMail: pp@cs.com.pl AmigaE module for NList Updated from C includes by Federico Pomi http://www.AmyResource.it/Fede Fede@AmyResource.it */ OPT MODULE OPT EXPORT OPT PREPROCESS MODULE 'libraries/mui','utility/hooks','graphics/gfx' /* MUI Prop and Scroller classes stuff which is still not in libraries/mui.h (in MUI3.8) */ /* it gives to the prop object it's increment value */ #define MUIA_Prop_DeltaFactor $80427C5E #define MUIC_NList 'NList.mcc' #define NListObject Mui_NewObjectA(MUIC_NList,[TAG_IGNORE,0 /* Attributes */ #define MUIA_NList_TypeSelect $9d510030 #define MUIA_NList_Prop_DeltaFactor $9d510031 #define MUIA_NList_Horiz_DeltaFactor $9d510032 #define MUIA_NList_Horiz_First $9d510033 #define MUIA_NList_Horiz_Visible $9d510034 #define MUIA_NList_Horiz_Entries $9d510035 #define MUIA_NList_Prop_First $9d510036 #define MUIA_NList_Prop_Visible $9d510037 #define MUIA_NList_Prop_Entries $9d510038 #define MUIA_NList_TitlePen $9d510039 #define MUIA_NList_ListPen $9d51003a #define MUIA_NList_SelectPen $9d51003b #define MUIA_NList_CursorPen $9d51003c #define MUIA_NList_UnselCurPen $9d51003d #define MUIA_NList_ListBackground $9d51003e #define MUIA_NList_TitleBackground $9d51003f #define MUIA_NList_SelectBackground $9d510040 #define MUIA_NList_CursorBackground $9d510041 #define MUIA_NList_UnselCurBackground $9d510042 #define MUIA_NList_MultiClick $9d510043 #define MUIA_NList_DefaultObjectOnClick $9d510044 #define MUIA_NList_ClickColumn $9d510045 #define MUIA_NList_DefClickColumn $9d510046 #define MUIA_NList_DoubleClick $9d510047 #define MUIA_NList_DragType $9d510048 #define MUIA_NList_Input $9d510049 #define MUIA_NList_MultiSelect $9d51004a #define MUIA_NList_SelectChange $9d51004b #define MUIA_NList_Active $9d51004c #define MUIA_NList_AdjustHeight $9d51004d #define MUIA_NList_AdjustWidth $9d51004e #define MUIA_NList_AutoVisible $9d51004f #define MUIA_NList_CompareHook $9d510050 #define MUIA_NList_ConstructHook $9d510051 #define MUIA_NList_DestructHook $9d510052 #define MUIA_NList_DisplayHook $9d510053 #define MUIA_NList_DragSortable $9d510054 #define MUIA_NList_DropMark $9d510055 #define MUIA_NList_Entries $9d510056 #define MUIA_NList_First $9d510057 #define MUIA_NList_Format $9d510058 #define MUIA_NList_InsertPosition $9d510059 #define MUIA_NList_MinLineHeight $9d51005a #define MUIA_NList_MultiTestHook $9d51005b #define MUIA_NList_Pool $9d51005c #define MUIA_NList_PoolPuddleSize $9d51005d #define MUIA_NList_PoolThreshSize $9d51005e #define MUIA_NList_Quiet $9d51005f #define MUIA_NList_ShowDropMarks $9d510060 #define MUIA_NList_SourceArray $9d510061 #define MUIA_NList_Title $9d510062 #define MUIA_NList_Columns $9d5100F6 #define MUIA_NList_Visible $9d510063 #define MUIA_NList_CopyEntryToClipHook $9d510064 #define MUIA_NList_KeepActive $9d510065 #define MUIA_NList_MakeActive $9d510066 #define MUIA_NList_SourceString $9d510067 #define MUIA_NList_CopyColumnToClipHook $9d510068 #define MUIA_NList_ListCompatibility $9d510069 #define MUIA_NList_AutoCopyToClip $9d51006A #define MUIA_NList_TabSize $9d51006B #define MUIA_NList_SkipChars $9d51006C #define MUIA_NList_DisplayRecall $9d51006D #define MUIA_NList_PrivateData $9d51006E #define MUIA_NList_EntryValueDependent $9d51006F #define MUIA_NList_StackCheck $9d510097 #define MUIA_NList_WordSelectChars $9d510098 #define MUIA_NList_EntryClick $9d510099 #define MUIA_NList_DragColOnly $9d51009A #define MUIA_NList_TitleClick $9d51009B #define MUIA_NList_DropType $9d51009C #define MUIA_NList_ForcePen $9d51009D #define MUIA_NList_SourceInsert $9d51009E #define MUIA_NList_TitleSeparator $9d51009F #define MUIA_NList_LineHeight $9d5100F7 #define MUIA_NList_ButtonClick $9d5100F8 #define MUIA_NList_CopyEntryToClipHook2 $9d5100F9 #define MUIA_NList_CopyColumnToClipHook2 $9d5100FA #define MUIA_NList_CompareHook2 $9d5100FB #define MUIA_NList_ConstructHook2 $9d5100FC #define MUIA_NList_DestructHook2 $9d5100FD #define MUIA_NList_DisplayHook2 $9d5100FE #define MUIA_NList_SortType $9d5100FF #define MUIA_NLIMG_EntryCurrent $9d510057 #define MUIA_NLIMG_EntryHeight $9d510063 /* obsolete tag names */ #define MUIA_NList_VertDeltaFactor $9d510031 #define MUIA_NList_HorizDeltaFactor $9d510032 /* Attributes special datas */ #define MUIV_NList_TypeSelect_Line 0 #define MUIV_NList_TypeSelect_Char 1 #define MUIV_NList_Font -20 #define MUIV_NList_Font_Little -21 #define MUIV_NList_Font_Fixed -22 #define MUIV_NList_ConstructHook_String -1 #define MUIV_NList_DestructHook_String -1 #define MUIV_NList_Active_Off -1 #define MUIV_NList_Active_Top -2 #define MUIV_NList_Active_Bottom -3 #define MUIV_NList_Active_Up -4 #define MUIV_NList_Active_Down -5 #define MUIV_NList_Active_PageUp -6 #define MUIV_NList_Active_PageDown -7 #define MUIV_NList_First_Top -2 #define MUIV_NList_First_Bottom -3 #define MUIV_NList_First_Up -4 #define MUIV_NList_First_Down -5 #define MUIV_NList_First_PageUp -6 #define MUIV_NList_First_PageDown -7 #define MUIV_NList_First_Up2 -8 #define MUIV_NList_First_Down2 -9 #define MUIV_NList_First_Up4 -10 #define MUIV_NList_First_Down4 -11 #define MUIV_NList_Horiz_First_Start -2 #define MUIV_NList_Horiz_First_End -3 #define MUIV_NList_Horiz_First_Left -4 #define MUIV_NList_Horiz_First_Right -5 #define MUIV_NList_Horiz_First_PageLeft -6 #define MUIV_NList_Horiz_First_PageRight -7 #define MUIV_NList_Horiz_First_Left2 -8 #define MUIV_NList_Horiz_First_Right2 -9 #define MUIV_NList_Horiz_First_Left4 -10 #define MUIV_NList_Horiz_First_Right4 -11 #define MUIV_NList_MultiSelect_None 0 #define MUIV_NList_MultiSelect_Default 1 #define MUIV_NList_MultiSelect_Shifted 2 #define MUIV_NList_MultiSelect_Always 3 #define MUIV_NList_Insert_Top 0 #define MUIV_NList_Insert_Active -1 #define MUIV_NList_Insert_Sorted -2 #define MUIV_NList_Insert_Bottom -3 #define MUIV_NList_Remove_First 0 #define MUIV_NList_Remove_Active -1 #define MUIV_NList_Remove_Last -2 #define MUIV_NList_Remove_Selected -3 #define MUIV_NList_Select_Off 0 #define MUIV_NList_Select_On 1 #define MUIV_NList_Select_Toggle 2 #define MUIV_NList_Select_Ask 3 #define MUIV_NList_GetEntry_Active -1 #define MUIV_NList_GetEntryInfo_Line -2 #define MUIV_NList_Select_Active -1 #define MUIV_NList_Select_All -2 #define MUIV_NList_Redraw_Active -1 #define MUIV_NList_Redraw_All -2 #define MUIV_NList_Redraw_Title -3 #define MUIV_NList_Move_Top 0 #define MUIV_NList_Move_Active -1 #define MUIV_NList_Move_Bottom -2 #define MUIV_NList_Move_Next -3 /* only valid for second parameter (and not with Move_Selected) */ #define MUIV_NList_Move_Previous -4 /* only valid for second parameter (and not with Move_Selected) */ #define MUIV_NList_Move_Selected -5 /* only valid for first parameter */ #define MUIV_NList_Exchange_Top 0 #define MUIV_NList_Exchange_Active -1 #define MUIV_NList_Exchange_Bottom -2 #define MUIV_NList_Exchange_Next -3 /* only valid for second parameter */ #define MUIV_NList_Exchange_Previous -4 /* only valid for second parameter */ #define MUIV_NList_Jump_Top 0 #define MUIV_NList_Jump_Active -1 #define MUIV_NList_Jump_Bottom -2 #define MUIV_NList_Jump_Up -4 #define MUIV_NList_Jump_Down -3 #define MUIV_NList_NextSelected_Start -1 #define MUIV_NList_NextSelected_End -1 #define MUIV_NList_DragType_None 0 #define MUIV_NList_DragType_Default 1 #define MUIV_NList_DragType_Immediate 2 #define MUIV_NList_DragType_Borders 3 #define MUIV_NList_DragType_Qualifier 4 #define MUIV_NList_CopyToClip_Active -1 #define MUIV_NList_CopyToClip_Selected -2 #define MUIV_NList_CopyToClip_All -3 #define MUIV_NList_CopyToClip_Entries -4 #define MUIV_NList_CopyToClip_Entry -5 #define MUIV_NList_CopyToClip_Strings -6 #define MUIV_NList_CopyToClip_String -7 #define MUIV_NLCT_Success 0 #define MUIV_NLCT_OpenErr 1 #define MUIV_NLCT_WriteErr 2 #define MUIV_NLCT_Failed 3 #define MUIV_NList_ForcePen_On 1 #define MUIV_NList_ForcePen_Off 0 #define MUIV_NList_ForcePen_Default -1 #define MUIV_NList_DropType_Mask $00FF #define MUIV_NList_DropType_None 0 #define MUIV_NList_DropType_Above 1 #define MUIV_NList_DropType_Below 2 #define MUIV_NList_DropType_Onto 3 #define MUIV_NList_DoMethod_Active -1 #define MUIV_NList_DoMethod_Selected -2 #define MUIV_NList_DoMethod_All -3 #define MUIV_NList_DoMethod_Entry -1 #define MUIV_NList_DoMethod_Self -2 #define MUIV_NList_DoMethod_App -3 #define MUIV_NList_EntryValue $49893231 #define MUIV_NList_EntryPosValue $49893233 #define MUIV_NList_SelfValue $49893235 #define MUIV_NList_AppValue $49893237 #define MUIV_NList_ColWidth_All -1 #define MUIV_NList_ColWidth_Default -1 #define MUIV_NList_ColWidth_Get -2 #define MUIV_NList_ContextMenu_Default $9d510031 #define MUIV_NList_ContextMenu_TopOnly $9d510033 #define MUIV_NList_ContextMenu_BarOnly $9d510035 #define MUIV_NList_ContextMenu_Bar_Top $9d510037 #define MUIV_NList_ContextMenu_Always $9d510039 #define MUIV_NList_ContextMenu_Never $9d51003b #define MUIV_NList_Menu_Default_This $9d51003d #define MUIV_NList_Menu_Default_All $9d51003f #define MUIV_NList_SortTypeAdd_None $00000000 #define MUIV_NList_SortTypeAdd_2Values $80000000 #define MUIV_NList_SortTypeAdd_4Values $40000000 #define MUIV_NList_SortTypeAdd_Mask $C0000000 #define MUIV_NList_SortTypeValue_Mask $3FFFFFFF #define MUIV_NList_Quiet_None 0 #define MUIV_NList_Quiet_Full -1 #define MUIV_NList_Quiet_Visual -2 #define MUIV_NList_Imports_Active %1 #define MUIV_NList_Imports_Selected %10 #define MUIV_NList_Imports_First %100 #define MUIV_NList_Imports_ColWidth %1000 #define MUIV_NList_Imports_ColOrder %10000 #define MUIV_NList_Imports_Cols $000000F8 #define MUIV_NList_Imports_All $0000FFFF #define MUIV_NList_Exports_Active %1 #define MUIV_NList_Exports_Selected %10 #define MUIV_NList_Exports_First %100 #define MUIV_NList_Exports_ColWidth %1000 #define MUIV_NList_Exports_ColOrder %10000 #define MUIV_NList_Exports_Cols $000000F8 #define MUIV_NList_Exports_All $0000FFFF #define MUIV_NList_TitleMark_ColMask $0FFFFFFF #define MUIV_NList_TitleMark_TypeMask $F0000000 #define MUIV_NList_TitleMark_None $F0000000 #define MUIV_NList_TitleMark_Down $00000000 #define MUIV_NList_TitleMark_Up $80000000 #define MUIV_NList_TitleMark_Box $40000000 #define MUIV_NList_TitleMark_Circle $C0000000 #define MUIV_NList_SetColumnCol_Default -1 /* Structs */ OBJECT bitmapimage control:LONG /* should be = to MUIM_NList_CreateImage for a valid BitMapImage struct */ width:INT /* if control == MUIA_Image_Spec then obtainpens is a pointer to an Object */ height:INT obtainpens:PTR TO INT mask:PTR TO LONG imgbmp:bitmap flags:LONG ENDOBJECT OBJECT mui_nlist_testpos_result entry:LONG /* number of entry, -1 if mouse not over valid entry */ column:INT /* numer of column, -1 if no valid column */ flags:INT /* not in the list, see below */ xoffset:INT /* x offset in column */ yoffset:INT /* y offset of mouse click from center of line */ preparse:INT /* 2 if in column preparse string, 1 if in entry preparse string, else 0 */ char_number:INT /* the number of the clicked char in column, -1 if no valid */ char_xoffset:INT /* x offset of mouse clicked from left of char if positive */ /* and left of next char if negative. If there is no char there */ /* negative if from left of first char else from right of last one */ ENDOBJECT CONST MUI_NLPR_ABOVE =1, MUI_NLPR_BELOW =2, MUI_NLPR_LEFT =4, MUI_NLPR_RIGHT =8, MUI_NLPR_BAR =16, MUI_NLPR_TITLE =32, MUI_NLPR_ONTOP =64 OBJECT mui_nlist_getentryinfo pos:LONG /* number of entry you want info about */ line:LONG /* real line number */ entry_pos:LONG /* number of entry of returned entry ptr */ entry:PTR TO LONG /* entry pointer */ wrapcol:LONG /* NOWRAP, WRAPCOLx, or WRAPPED|WRAPCOLx */ charpos:LONG /* start char number in string (unused if NOWRAP) */ charlen:LONG /* string lenght (unused if NOWRAP) */ ENDOBJECT #define NOWRAP $00 #define WRAPCOL0 $01 #define WRAPCOL1 $02 #define WRAPCOL2 $04 #define WRAPCOL3 $08 #define WRAPCOL4 $10 #define WRAPCOL5 $20 #define WRAPCOL6 $40 #define WRAPPED $80 OBJECT mui_nlist_getselectinfo start:LONG /* num of first selected *REAL* entry/line (first of wrapped from which start is issued) */ end:LONG /* num of last selected *REAL* entry/line (first of wrapped from which start is issued) */ num:LONG /* not used */ start_column:LONG /* column of start of selection in 'start' entry */ end_column:LONG /* column of end of selection in 'end' entry */ start_pos:LONG /* char pos of start of selection in 'start_column' entry */ end_pos:LONG /* char pos of end of selection in 'end_column' entry */ vstart:LONG /* num of first visually selected entry */ vend:LONG /* num of last visually selected entry */ vnum:LONG /* number of visually selected entries */ ENDOBJECT /* NOTE that vstart==start, vend==end in all cases if no wrapping is used */ /* Methods */ #define MUIM_NList_Clear $9d510070 #define MUIM_NList_CreateImage $9d510071 #define MUIM_NList_DeleteImage $9d510072 #define MUIM_NList_Exchange $9d510073 #define MUIM_NList_GetEntry $9d510074 #define MUIM_NList_Insert $9d510075 #define MUIM_NList_InsertSingle $9d510076 #define MUIM_NList_Jump $9d510077 #define MUIM_NList_Move $9d510078 #define MUIM_NList_NextSelected $9d510079 #define MUIM_NList_Redraw $9d51007a #define MUIM_NList_Remove $9d51007b #define MUIM_NList_Select $9d51007c #define MUIM_NList_Sort $9d51007d #define MUIM_NList_TestPos $9d51007e #define MUIM_NList_CopyToClip $9d51007f #define MUIM_NList_UseImage $9d510080 #define MUIM_NList_ReplaceSingle $9d510081 #define MUIM_NList_InsertWrap $9d510082 #define MUIM_NList_InsertSingleWrap $9d510083 #define MUIM_NList_GetEntryInfo $9d510084 #define MUIM_NList_QueryBeginning $9d510085 #define MUIM_NList_GetSelectInfo $9d510086 #define MUIM_NList_CopyTo $9d510087 #define MUIM_NList_DropType $9d510088 #define MUIM_NList_DropDraw $9d510089 #define MUIM_NList_RedrawEntry $9d51008a #define MUIM_NList_DoMethod $9d51008b #define MUIM_NList_ColWidth $9d51008c #define MUIM_NList_ContextMenuBuild $9d51008d #define MUIM_NList_DropEntryDrawErase $9d51008e #define MUIM_NList_ColToColumn $9d51008f #define MUIM_NList_ColumnToCol $9d510091 #define MUIM_NList_Sort2 $9d510092 #define MUIM_NList_PrevSelected $9d510093 #define MUIM_NList_SetColumnCol $9d510094 OBJECT muip_nlist_clear methodid:LONG ENDOBJECT OBJECT muip_nlist_createimage methodid:LONG obj:PTR TO LONG flags:LONG ENDOBJECT OBJECT muip_nlist_deleteimage methodid:LONG listimg:PTR TO LONG ENDOBJECT OBJECT muip_nlist_exchange methodid:LONG pos1:LONG pos2:LONG ENDOBJECT OBJECT muip_nlist_getentry methodid:LONG pos:LONG entry:PTR TO LONG ENDOBJECT OBJECT muip_nlist_insert methodid:LONG entries:PTR TO LONG count:LONG pos:LONG ENDOBJECT OBJECT muip_nlist_insertsingle methodid:LONG entry:PTR TO LONG pos:LONG ENDOBJECT OBJECT muip_nlist_jump methodid:LONG pos:LONG ENDOBJECT OBJECT muip_nlist_move methodid:LONG from:LONG to:LONG ENDOBJECT OBJECT muip_nlist_nextselected methodid:LONG pos:PTR TO LONG ENDOBJECT OBJECT muip_nlist_redraw methodid:LONG pos:LONG ENDOBJECT OBJECT muip_nlist_remove methodid:LONG pos:LONG ENDOBJECT OBJECT muip_nlist_select methodid:LONG pos:LONG seltype:LONG state:PTR TO LONG ENDOBJECT OBJECT muip_nlist_sort methodid:LONG ENDOBJECT OBJECT muip_nlist_testpos methodid:LONG x:LONG y:LONG res:PTR TO mui_nlist_testpos_result ENDOBJECT OBJECT muip_nlist_copytoclip methodid:LONG pos:LONG clipnum:LONG entries:PTR TO LONG hook:PTR TO hook ENDOBJECT OBJECT muip_nlist_useimage methodid:LONG obj:PTR TO LONG imgnum:LONG ENDOBJECT OBJECT muip_nlist_replacesingle methodid:LONG entry:PTR TO LONG pos:LONG wrapcol:LONG ENDOBJECT OBJECT muip_nlist_insertwrap methodid:LONG entries:PTR TO LONG count:LONG pos:LONG wrapcol:LONG align:LONG ENDOBJECT OBJECT muip_nlist_insertsinglewrap methodid:LONG entry:PTR TO LONG pos:LONG wrapcol:LONG align:LONG ENDOBJECT OBJECT muip_nlist_getentryinfo methodid:LONG res:PTR TO mui_nlist_getentryinfo ENDOBJECT OBJECT muip_nlist_querybeginning methodid:LONG ENDOBJECT OBJECT muip_nlist_getselectinfo methodid:LONG res:PTR TO mui_nlist_getselectinfo ENDOBJECT OBJECT muip_nlist_copyto methodid:LONG pos:LONG filename:PTR TO CHAR result:PTR TO LONG entries:PTR TO LONG ENDOBJECT OBJECT muip_nlist_droptype methodid:LONG pos:PTR TO LONG type:PTR TO LONG ENDOBJECT OBJECT muip_nlist_dropdraw methodid:LONG pos:LONG type:LONG minx:LONG maxx:LONG miny:LONG maxy:LONG ENDOBJECT OBJECT muip_nlist_redrawentry methodid:LONG entry:PTR TO LONG ENDOBJECT OBJECT muip_nlist_domethod methodid:LONG pos:LONG destobj:PTR TO LONG followparams:LONG ENDOBJECT OBJECT muip_nlist_colwidth methodid:LONG col:LONG width:LONG ENDOBJECT OBJECT muip_nlist_contextmenubuild methodid:LONG mx:LONG my:LONG pos:LONG column:LONG flags:LONG ontop:LONG ENDOBJECT OBJECT muip_nlist_dropentrydrawerase methodid:LONG type:LONG drawpos:LONG erasepos:LONG ENDOBJECT OBJECT muip_nlist_coltocolumn methodid:LONG col:LONG ENDOBJECT OBJECT muip_nlist_columntocol methodid:LONG column:LONG ENDOBJECT OBJECT muip_nlist_sort2 methodid:LONG sort_type:LONG sort_type_add:LONG ENDOBJECT OBJECT muip_nlist_prevselected methodid:LONG pos:PTR TO LONG ENDOBJECT OBJECT muip_nlist_setcolumncol methodid:LONG column:LONG col:LONG ENDOBJECT #define DISPLAY_ARRAY_MAX 64 #define ALIGN_LEFT $0000 #define ALIGN_CENTER $0100 #define ALIGN_RIGHT $0200 #define ALIGN_JUSTIFY $0400 OBJECT nlist_comparemessage entry1:PTR TO LONG entry2:PTR TO LONG sort_type:LONG ENDOBJECT OBJECT nlist_constructmessage entry:PTR TO LONG pool:PTR TO LONG ENDOBJECT OBJECT nlist_destructmessage entry:PTR TO LONG pool:PTR TO LONG ENDOBJECT OBJECT nlist_displaymessage entry:PTR TO LONG entry_pos:LONG /* strings:ARRAY OF 64 PTR TO CHAR*/ /* preparses:ARRAY OF 64 PTR TO CHAR*/ ENDOBJECT OBJECT nlist_copyentrytoclipmessage entry:PTR TO LONG entry_pos:LONG str_result:PTR TO CHAR column1:LONG column1_pos:LONG column2:LONG column2_pos:LONG column1_pos_type:LONG column2_pos_type:LONG ENDOBJECT OBJECT nlist_copycolumntoclipmessage string:PTR TO CHAR entry_pos:LONG str_result:PTR TO CHAR str_pos1:LONG str_pos2:LONG ENDOBJECT