1 /***************************************************************************
3 NListtree.mcc - New Listtree MUI Custom Class
4 Copyright (C) 1999-2001 by Carsten Scholling
5 Copyright (C) 2001-2014 NList Open Source Team
7 This library is free software; you can redistribute it and/or
8 modify it under the terms of the GNU Lesser General Public
9 License as published by the Free Software Foundation; either
10 version 2.1 of the License, or (at your option) any later version.
12 This library is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 Lesser General Public License for more details.
17 NList classes Support Site: http://www.sf.net/projects/nlist-classes
21 ***************************************************************************/
23 /*** Include stuff ***/
25 #ifndef NLISTTREE_MCC_H
26 #define NLISTTREE_MCC_H
28 #ifndef LIBRARIES_MUI_H
29 #include "libraries/mui.h"
36 #if !defined(__AROS__) && defined(__PPC__)
39 #elif defined(__VBCC__)
44 /***********************************************************************/
46 // STACKED ensures proper alignment on AROS 64 bit systems
47 #if !defined(__AROS__) && !defined(STACKED)
51 /***********************************************************************/
55 #define MUIC_NListtree "NListtree.mcc"
56 #if defined(__AROS__) && !defined(NO_INLINE_STDARG)
57 #define NListtreeObject MUIOBJMACRO_START(MUIC_NListtree)
59 #define NListtreeObject MUI_NewObject(MUIC_NListtree
64 #define MUIA_NListtree_Active 0xfec81201UL // *** [.SGN]
65 #define MUIA_NListtree_ActiveList 0xfec81202UL // *** [..GN]
66 #define MUIA_NListtree_CloseHook 0xfec81203UL // *** [IS..]
67 #define MUIA_NListtree_ConstructHook 0xfec81204UL // *** [IS..]
68 #define MUIA_NListtree_DestructHook 0xfec81205UL // *** [IS..]
69 #define MUIA_NListtree_DisplayHook 0xfec81206UL // *** [IS..]
70 #define MUIA_NListtree_DoubleClick 0xfec81207UL // *** [ISGN]
71 #define MUIA_NListtree_DragDropSort 0xfec81208UL // *** [IS..]
72 #define MUIA_NListtree_DupNodeName 0xfec81209UL // *** [IS..]
73 #define MUIA_NListtree_EmptyNodes 0xfec8120aUL // *** [IS..]
74 #define MUIA_NListtree_Format 0xfec8120bUL // *** [IS..]
75 #define MUIA_NListtree_OpenHook 0xfec8120cUL // *** [IS..]
76 #define MUIA_NListtree_Quiet 0xfec8120dUL // *** [.S..]
77 #define MUIA_NListtree_CompareHook 0xfec8120eUL // *** [IS..]
78 #define MUIA_NListtree_Title 0xfec8120fUL // *** [IS..]
79 #define MUIA_NListtree_TreeColumn 0xfec81210UL // *** [ISG.]
80 #define MUIA_NListtree_AutoVisible 0xfec81211UL // *** [ISG.]
81 #define MUIA_NListtree_FindNameHook 0xfec81212UL // *** [IS..]
82 #define MUIA_NListtree_MultiSelect 0xfec81213UL // *** [I...]
83 #define MUIA_NListtree_MultiTestHook 0xfec81214UL // *** [IS..]
84 #define MUIA_NListtree_CopyToClipHook 0xfec81217UL // *** [IS..]
85 #define MUIA_NListtree_DropType 0xfec81218UL // *** [..G.]
86 #define MUIA_NListtree_DropTarget 0xfec81219UL // *** [..G.]
87 #define MUIA_NListtree_DropTargetPos 0xfec8121aUL // *** [..G.]
88 #define MUIA_NListtree_FindUserDataHook 0xfec8121bUL // *** [IS..]
89 #define MUIA_NListtree_ShowTree 0xfec8121cUL // *** [ISG.]
90 #define MUIA_NListtree_SelectChange 0xfec8121dUL // *** [ISGN]
93 /*** Special attribute values ***/
95 #define MUIV_NListtree_Active_Off 0
96 #define MUIV_NListtree_Active_Parent -2
97 #define MUIV_NListtree_Active_First -3
98 #define MUIV_NListtree_Active_FirstVisible -4
99 #define MUIV_NListtree_Active_LastVisible -5
101 #define MUIV_NListtree_ActiveList_Off 0
103 #define MUIV_NListtree_AutoVisible_Off 0
104 #define MUIV_NListtree_AutoVisible_Normal 1
105 #define MUIV_NListtree_AutoVisible_FirstOpen 2
106 #define MUIV_NListtree_AutoVisible_Expand 3
108 #define MUIV_NListtree_CompareHook_Head 0
109 #define MUIV_NListtree_CompareHook_Tail -1
110 #define MUIV_NListtree_CompareHook_LeavesTop -2
111 #define MUIV_NListtree_CompareHook_LeavesMixed -3
112 #define MUIV_NListtree_CompareHook_LeavesBottom -4
114 #define MUIV_NListtree_ConstructHook_String -1
115 #define MUIV_NListtree_ConstructHook_Flag_AutoCreate (1<<15)
117 #define MUIV_NListtree_CopyToClipHook_Default 0
119 #define MUIV_NListtree_DestructHook_String -1
121 #define MUIV_NListtree_DisplayHook_Default -1
123 #define MUIV_NListtree_DoubleClick_Off -1
124 #define MUIV_NListtree_DoubleClick_All -2
125 #define MUIV_NListtree_DoubleClick_Tree -3
126 #define MUIV_NListtree_DoubleClick_NoTrigger -4
128 #define MUIV_NListtree_DropType_None 0
129 #define MUIV_NListtree_DropType_Above 1
130 #define MUIV_NListtree_DropType_Below 2
131 #define MUIV_NListtree_DropType_Onto 3
132 #define MUIV_NListtree_DropType_Sorted 4
134 #define MUIV_NListtree_FindNameHook_CaseSensitive 0
135 #define MUIV_NListtree_FindNameHook_CaseInsensitive -1
136 #define MUIV_NListtree_FindNameHook_Part -2
137 #define MUIV_NListtree_FindNameHook_PartCaseInsensitive -3
138 #define MUIV_NListtree_FindNameHook_PointerCompare -4
140 #define MUIV_NListtree_FindUserDataHook_CaseSensitive 0
141 #define MUIV_NListtree_FindUserDataHook_CaseInsensitive -1
142 #define MUIV_NListtree_FindUserDataHook_Part -2
143 #define MUIV_NListtree_FindUserDataHook_PartCaseInsensitive -3
144 #define MUIV_NListtree_FindUserDataHook_PointerCompare -4
146 #define MUIV_NListtree_MultiSelect_None 0
147 #define MUIV_NListtree_MultiSelect_Default 1
148 #define MUIV_NListtree_MultiSelect_Shifted 2
149 #define MUIV_NListtree_MultiSelect_Always 3
152 #define MUIV_NListtree_ShowTree_Toggle -1
155 /*** Structures & Flags ***/
157 struct MUI_NListtree_TreeNode
{
158 struct MinNode tn_Node
; // *** To make it a node.
159 STRPTR tn_Name
; // *** Simple name field.
160 UWORD tn_Flags
; // *** Used for the flags below.
161 APTR tn_User
; // *** Free for user data.
165 #define TNF_OPEN (1<<0)
166 #define TNF_LIST (1<<1)
167 #define TNF_FROZEN (1<<2)
168 #define TNF_NOSIGN (1<<3)
169 #define TNF_SELECTED (1<<4)
173 struct MUI_NListtree_TestPos_Result
{
174 struct MUI_NListtree_TreeNode
*tpr_TreeNode
;
182 #define tpr_Flags tpr_Type /* OBSOLETE */
187 #define MUIM_NListtree_Open 0xfec81101UL
188 #define MUIM_NListtree_Close 0xfec81102UL
189 #define MUIM_NListtree_Insert 0xfec81103UL
190 #define MUIM_NListtree_Remove 0xfec81104UL
191 #define MUIM_NListtree_Exchange 0xfec81105UL
192 #define MUIM_NListtree_Move 0xfec81106UL
193 #define MUIM_NListtree_Rename 0xfec81107UL
194 #define MUIM_NListtree_FindName 0xfec81108UL
195 #define MUIM_NListtree_GetEntry 0xfec81109UL
196 #define MUIM_NListtree_GetNr 0xfec8110aUL
197 #define MUIM_NListtree_Sort 0xfec8110bUL
198 #define MUIM_NListtree_TestPos 0xfec8110cUL
199 #define MUIM_NListtree_Redraw 0xfec8110dUL
200 #define MUIM_NListtree_NextSelected 0xfec81110UL
201 #define MUIM_NListtree_MultiTest 0xfec81111UL
202 #define MUIM_NListtree_Select 0xfec81112UL
203 #define MUIM_NListtree_Copy 0xfec81113UL
204 #define MUIM_NListtree_InsertStruct 0xfec81114UL // *** Insert a struct (like a path) into the list.
205 #define MUIM_NListtree_Active 0xfec81115UL // *** Method which gives the active node/number.
206 #define MUIM_NListtree_DoubleClick 0xfec81116UL // *** Occurs on every double click.
207 #define MUIM_NListtree_PrevSelected 0xfec81118UL // *** Like reverse NextSelected.
208 #define MUIM_NListtree_CopyToClip 0xfec81119UL // *** Copy an entry or part to the clipboard.
209 #define MUIM_NListtree_FindUserData 0xfec8111aUL // *** Find a node upon user data.
210 #define MUIM_NListtree_Clear 0xfec8111bUL // *** Clear complete tree.
211 #define MUIM_NListtree_DropType 0xfec8111eUL // ***
212 #define MUIM_NListtree_DropDraw 0xfec8111fUL // ***
213 #define MUIM_NListtree_Construct 0xfec81120UL // *** Construct a treenode
214 #define MUIM_NListtree_Destruct 0xfec81121UL // *** Destruct a treenode
215 #define MUIM_NListtree_Display 0xfec81122UL // *** Display a treenode
216 #define MUIM_NListtree_Compare 0xfec81123UL // *** Compare two treenodes
219 /*** Method structs ***/
221 struct MUIP_NListtree_Open
223 STACKED ULONG MethodID
;
224 STACKED
struct MUI_NListtree_TreeNode
*ListNode
;
225 STACKED
struct MUI_NListtree_TreeNode
*TreeNode
;
229 struct MUIP_NListtree_Close
231 STACKED ULONG MethodID
;
232 STACKED
struct MUI_NListtree_TreeNode
*ListNode
;
233 STACKED
struct MUI_NListtree_TreeNode
*TreeNode
;
237 struct MUIP_NListtree_Insert
239 STACKED ULONG MethodID
;
242 STACKED
struct MUI_NListtree_TreeNode
*ListNode
;
243 STACKED
struct MUI_NListtree_TreeNode
*PrevNode
;
247 struct MUIP_NListtree_Remove
249 STACKED ULONG MethodID
;
250 STACKED
struct MUI_NListtree_TreeNode
*ListNode
;
251 STACKED
struct MUI_NListtree_TreeNode
*TreeNode
;
255 struct MUIP_NListtree_Clear
257 STACKED ULONG MethodID
;
258 STACKED
struct MUI_NListtree_TreeNode
*ListNode
;
262 struct MUIP_NListtree_FindName
264 STACKED ULONG MethodID
;
265 STACKED
struct MUI_NListtree_TreeNode
*ListNode
;
270 struct MUIP_NListtree_FindUserData
272 STACKED ULONG MethodID
;
273 STACKED
struct MUI_NListtree_TreeNode
*ListNode
;
278 struct MUIP_NListtree_GetEntry
280 STACKED ULONG MethodID
;
281 STACKED
struct MUI_NListtree_TreeNode
*Node
;
282 STACKED LONG Position
;
286 struct MUIP_NListtree_GetNr
288 STACKED ULONG MethodID
;
289 STACKED
struct MUI_NListtree_TreeNode
*TreeNode
;
293 struct MUIP_NListtree_Move
295 STACKED ULONG MethodID
;
296 STACKED
struct MUI_NListtree_TreeNode
*OldListNode
;
297 STACKED
struct MUI_NListtree_TreeNode
*OldTreeNode
;
298 STACKED
struct MUI_NListtree_TreeNode
*NewListNode
;
299 STACKED
struct MUI_NListtree_TreeNode
*NewTreeNode
;
303 struct MUIP_NListtree_Exchange
305 STACKED ULONG MethodID
;
306 STACKED
struct MUI_NListtree_TreeNode
*ListNode1
;
307 STACKED
struct MUI_NListtree_TreeNode
*TreeNode1
;
308 STACKED
struct MUI_NListtree_TreeNode
*ListNode2
;
309 STACKED
struct MUI_NListtree_TreeNode
*TreeNode2
;
313 struct MUIP_NListtree_Rename
315 STACKED ULONG MethodID
;
316 STACKED
struct MUI_NListtree_TreeNode
*TreeNode
;
317 STACKED STRPTR NewName
;
321 struct MUIP_NListtree_Sort
323 STACKED ULONG MethodID
;
324 STACKED
struct MUI_NListtree_TreeNode
*ListNode
;
328 struct MUIP_NListtree_TestPos
330 STACKED ULONG MethodID
;
336 struct MUIP_NListtree_Redraw
338 STACKED ULONG MethodID
;
339 STACKED
struct MUI_NListtree_TreeNode
*TreeNode
;
343 struct MUIP_NListtree_Select
345 STACKED ULONG MethodID
;
346 STACKED
struct MUI_NListtree_TreeNode
*TreeNode
;
347 STACKED LONG SelType
;
348 STACKED LONG SelFlags
;
352 struct MUIP_NListtree_NextSelected
354 STACKED ULONG MethodID
;
355 STACKED
struct MUI_NListtree_TreeNode
**TreeNode
;
358 struct MUIP_NListtree_MultiTest
360 STACKED ULONG MethodID
;
361 STACKED
struct MUI_NListtree_TreeNode
*TreeNode
;
362 STACKED LONG SelType
;
363 STACKED LONG SelFlags
;
364 STACKED LONG CurrType
;
367 struct MUIP_NListtree_Copy
369 STACKED ULONG MethodID
;
370 STACKED
struct MUI_NListtree_TreeNode
*SourceListNode
;
371 STACKED
struct MUI_NListtree_TreeNode
*SourceTreeNode
;
372 STACKED
struct MUI_NListtree_TreeNode
*DestListNode
;
373 STACKED
struct MUI_NListtree_TreeNode
*DestTreeNode
;
377 struct MUIP_NListtree_InsertStruct
379 STACKED ULONG MethodID
;
382 STACKED STRPTR Delimiter
;
386 struct MUIP_NListtree_Active
388 STACKED ULONG MethodID
;
390 STACKED
struct MUI_NListtree_TreeNode
*ActiveNode
;
393 struct MUIP_NListtree_DoubleClick
395 STACKED ULONG MethodID
;
396 STACKED
struct MUI_NListtree_TreeNode
*TreeNode
;
401 struct MUIP_NListtree_PrevSelected
403 STACKED ULONG MethodID
;
404 STACKED
struct MUI_NListtree_TreeNode
**TreeNode
;
407 struct MUIP_NListtree_CopyToClip
409 STACKED ULONG MethodID
;
410 STACKED
struct MUI_NListtree_TreeNode
*TreeNode
;
415 struct MUIP_NListtree_DropType
417 STACKED ULONG MethodID
;
420 STACKED LONG MinX
, MaxX
, MinY
, MaxY
;
421 STACKED LONG MouseX
, MouseY
;
424 struct MUIP_NListtree_DropDraw
426 STACKED ULONG MethodID
;
429 STACKED LONG MinX
, MaxX
, MinY
, MaxY
;
432 struct MUIP_NListtree_Construct
434 STACKED ULONG MethodID
;
436 STACKED APTR UserData
;
437 STACKED APTR MemPool
;
441 struct MUIP_NListtree_Destruct
443 STACKED ULONG MethodID
;
445 STACKED APTR UserData
;
446 STACKED APTR MemPool
;
450 struct MUIP_NListtree_Display
452 STACKED ULONG MethodID
;
453 STACKED
struct MUI_NListtree_TreeNode
*TreeNode
;
454 STACKED LONG EntryPos
;
455 STACKED STRPTR
*Array
;
456 STACKED STRPTR
*Preparse
;
459 struct MUIP_NListtree_Compare
461 STACKED ULONG MethodID
;
462 STACKED
struct MUI_NListtree_TreeNode
*TreeNode1
;
463 STACKED
struct MUI_NListtree_TreeNode
*TreeNode2
;
464 STACKED LONG SortType
;
467 /*** Special method values ***/
469 #define MUIV_NListtree_Close_ListNode_Root ((IPTR)0)
470 #define MUIV_NListtree_Close_ListNode_Parent ((IPTR)-1)
471 #define MUIV_NListtree_Close_ListNode_Active ((IPTR)-2)
473 #define MUIV_NListtree_Close_TreeNode_Head ((IPTR)0)
474 #define MUIV_NListtree_Close_TreeNode_Tail ((IPTR)-1)
475 #define MUIV_NListtree_Close_TreeNode_Active ((IPTR)-2)
476 #define MUIV_NListtree_Close_TreeNode_All ((IPTR)-3)
480 #define MUIV_NListtree_Exchange_ListNode1_Root ((IPTR)0)
481 #define MUIV_NListtree_Exchange_ListNode1_Active ((IPTR)-2)
483 #define MUIV_NListtree_Exchange_TreeNode1_Head ((IPTR)0)
484 #define MUIV_NListtree_Exchange_TreeNode1_Tail ((IPTR)-1)
485 #define MUIV_NListtree_Exchange_TreeNode1_Active ((IPTR)-2)
487 #define MUIV_NListtree_Exchange_ListNode2_Root ((IPTR)0)
488 #define MUIV_NListtree_Exchange_ListNode2_Active ((IPTR)-2)
490 #define MUIV_NListtree_Exchange_TreeNode2_Head ((IPTR)0)
491 #define MUIV_NListtree_Exchange_TreeNode2_Tail ((IPTR)-1)
492 #define MUIV_NListtree_Exchange_TreeNode2_Active ((IPTR)-2)
493 #define MUIV_NListtree_Exchange_TreeNode2_Up ((IPTR)-5)
494 #define MUIV_NListtree_Exchange_TreeNode2_Down ((IPTR)-6)
497 #define MUIV_NListtree_FindName_ListNode_Root ((IPTR)0)
498 #define MUIV_NListtree_FindName_ListNode_Active ((IPTR)-2)
500 #define MUIV_NListtree_FindName_Flag_SameLevel (1<<15)
501 #define MUIV_NListtree_FindName_Flag_Visible (1<<14)
502 #define MUIV_NListtree_FindName_Flag_Activate (1<<13)
503 #define MUIV_NListtree_FindName_Flag_Selected (1<<11)
504 #define MUIV_NListtree_FindName_Flag_StartNode (1<<10)
505 #define MUIV_NListtree_FindName_Flag_Reverse (1<<9)
508 #define MUIV_NListtree_FindUserData_ListNode_Root ((IPTR)0)
509 #define MUIV_NListtree_FindUserData_ListNode_Active ((IPTR)-2)
511 #define MUIV_NListtree_FindUserData_Flag_SameLevel (1<<15)
512 #define MUIV_NListtree_FindUserData_Flag_Visible (1<<14)
513 #define MUIV_NListtree_FindUserData_Flag_Activate (1<<13)
514 #define MUIV_NListtree_FindUserData_Flag_Selected (1<<11)
515 #define MUIV_NListtree_FindUserData_Flag_StartNode (1<<10)
516 #define MUIV_NListtree_FindUserData_Flag_Reverse (1<<9)
519 #define MUIV_NListtree_GetEntry_ListNode_Root ((IPTR)0)
520 #define MUIV_NListtree_GetEntry_ListNode_Active ((IPTR)-2)
521 #define MUIV_NListtree_GetEntry_TreeNode_Active ((IPTR)-3)
523 #define MUIV_NListtree_GetEntry_Position_Head (0)
524 #define MUIV_NListtree_GetEntry_Position_Tail (-1)
525 #define MUIV_NListtree_GetEntry_Position_Active (-2)
526 #define MUIV_NListtree_GetEntry_Position_Next (-3)
527 #define MUIV_NListtree_GetEntry_Position_Previous (-4)
528 #define MUIV_NListtree_GetEntry_Position_Parent (-5)
530 #define MUIV_NListtree_GetEntry_Flag_SameLevel (1<<15)
531 #define MUIV_NListtree_GetEntry_Flag_Visible (1<<14)
534 #define MUIV_NListtree_GetNr_TreeNode_Active ((IPTR)-2)
536 #define MUIV_NListtree_GetNr_Flag_CountAll (1<<15)
537 #define MUIV_NListtree_GetNr_Flag_CountLevel (1<<14)
538 #define MUIV_NListtree_GetNr_Flag_CountList (1<<13)
539 #define MUIV_NListtree_GetNr_Flag_ListEmpty (1<<12)
540 #define MUIV_NListtree_GetNr_Flag_Visible (1<<11)
543 #define MUIV_NListtree_Insert_ListNode_Root ((IPTR)0)
544 #define MUIV_NListtree_Insert_ListNode_Active ((IPTR)-2)
545 #define MUIV_NListtree_Insert_ListNode_LastInserted ((IPTR)-3)
546 #define MUIV_NListtree_Insert_ListNode_ActiveFallback ((IPTR)-4)
548 #define MUIV_NListtree_Insert_PrevNode_Head ((IPTR)0)
549 #define MUIV_NListtree_Insert_PrevNode_Tail ((IPTR)-1)
550 #define MUIV_NListtree_Insert_PrevNode_Active ((IPTR)-2)
551 #define MUIV_NListtree_Insert_PrevNode_Sorted ((IPTR)-4)
553 #define MUIV_NListtree_Insert_Flag_Active (1<<13)
554 #define MUIV_NListtree_Insert_Flag_NextNode (1<<12)
557 #define MUIV_NListtree_Move_OldListNode_Root ((IPTR)0)
558 #define MUIV_NListtree_Move_OldListNode_Active ((IPTR)-2)
560 #define MUIV_NListtree_Move_OldTreeNode_Head ((IPTR)0)
561 #define MUIV_NListtree_Move_OldTreeNode_Tail ((IPTR)-1)
562 #define MUIV_NListtree_Move_OldTreeNode_Active ((IPTR)-2)
564 #define MUIV_NListtree_Move_NewListNode_Root ((IPTR)0)
565 #define MUIV_NListtree_Move_NewListNode_Active ((IPTR)-2)
567 #define MUIV_NListtree_Move_NewTreeNode_Head ((IPTR)0)
568 #define MUIV_NListtree_Move_NewTreeNode_Tail ((IPTR)-1)
569 #define MUIV_NListtree_Move_NewTreeNode_Active ((IPTR)-2)
570 #define MUIV_NListtree_Move_NewTreeNode_Sorted ((IPTR)-4)
572 #define MUIV_NListtree_Move_Flag_KeepStructure (1<<13)
575 #define MUIV_NListtree_Open_ListNode_Root ((IPTR)0)
576 #define MUIV_NListtree_Open_ListNode_Parent ((IPTR)-1)
577 #define MUIV_NListtree_Open_ListNode_Active ((IPTR)-2)
578 #define MUIV_NListtree_Open_TreeNode_Head ((IPTR)0)
579 #define MUIV_NListtree_Open_TreeNode_Tail ((IPTR)-1)
580 #define MUIV_NListtree_Open_TreeNode_Active ((IPTR)-2)
581 #define MUIV_NListtree_Open_TreeNode_All ((IPTR)-3)
585 #define MUIV_NListtree_Remove_ListNode_Root ((IPTR)0)
586 #define MUIV_NListtree_Remove_ListNode_Active ((IPTR)-2)
587 #define MUIV_NListtree_Remove_TreeNode_Head ((IPTR)0)
588 #define MUIV_NListtree_Remove_TreeNode_Tail ((IPTR)-1)
589 #define MUIV_NListtree_Remove_TreeNode_Active ((IPTR)-2)
590 #define MUIV_NListtree_Remove_TreeNode_All ((IPTR)-3)
591 #define MUIV_NListtree_Remove_TreeNode_Selected ((IPTR)-4)
593 #define MUIV_NListtree_Remove_Flag_NoActive (1<<13)
598 #define MUIV_NListtree_Rename_TreeNode_Active ((IPTR)-2)
600 #define MUIV_NListtree_Rename_Flag_User (1<<8)
601 #define MUIV_NListtree_Rename_Flag_NoRefresh (1<<9)
604 #define MUIV_NListtree_Sort_ListNode_Root ((IPTR)0)
605 #define MUIV_NListtree_Sort_ListNode_Active ((IPTR)-2)
606 #define MUIV_NListtree_Sort_TreeNode_Active ((IPTR)-3)
608 #define MUIV_NListtree_Sort_Flag_RecursiveOpen (1<<13)
609 #define MUIV_NListtree_Sort_Flag_RecursiveAll (1<<12)
612 #define MUIV_NListtree_TestPos_Result_None (0)
613 #define MUIV_NListtree_TestPos_Result_Above (1)
614 #define MUIV_NListtree_TestPos_Result_Below (2)
615 #define MUIV_NListtree_TestPos_Result_Onto (3)
616 #define MUIV_NListtree_TestPos_Result_Sorted (4)
618 #define MUIV_NListtree_Redraw_Active ((IPTR)-1)
619 #define MUIV_NListtree_Redraw_All ((IPTR)-2)
621 #define MUIV_NListtree_Redraw_Flag_Nr (1<<15)
623 #define MUIV_NListtree_Select_Active ((IPTR)-1)
624 #define MUIV_NListtree_Select_All ((IPTR)-2)
625 #define MUIV_NListtree_Select_Visible ((IPTR)-3)
627 #define MUIV_NListtree_Select_Off ((IPTR)0)
628 #define MUIV_NListtree_Select_On ((IPTR)1)
629 #define MUIV_NListtree_Select_Toggle ((IPTR)2)
630 #define MUIV_NListtree_Select_Ask ((IPTR)3)
632 #define MUIV_NListtree_Select_Flag_Force (1<<15)
635 #define MUIV_NListtree_NextSelected_Start ((IPTR)-1)
636 #define MUIV_NListtree_NextSelected_End ((IPTR)-1)
639 #define MUIV_NListtree_Copy_SourceListNode_Root ((IPTR)0)
640 #define MUIV_NListtree_Copy_SourceListNode_Active ((IPTR)-2)
642 #define MUIV_NListtree_Copy_SourceTreeNode_Head ((IPTR)0)
643 #define MUIV_NListtree_Copy_SourceTreeNode_Tail ((IPTR)-1)
644 #define MUIV_NListtree_Copy_SourceTreeNode_Active ((IPTR)-2)
646 #define MUIV_NListtree_Copy_DestListNode_Root ((IPTR)0)
647 #define MUIV_NListtree_Copy_DestListNode_Active ((IPTR)-2)
649 #define MUIV_NListtree_Copy_DestTreeNode_Head ((IPTR)0)
650 #define MUIV_NListtree_Copy_DestTreeNode_Tail ((IPTR)-1)
651 #define MUIV_NListtree_Copy_DestTreeNode_Active ((IPTR)-2)
652 #define MUIV_NListtree_Copy_DestTreeNode_Sorted ((IPTR)-4)
654 #define MUIV_NListtree_Copy_Flag_KeepStructure (1<<13)
657 #define MUIV_NListtree_PrevSelected_Start ((IPTR)-1)
658 #define MUIV_NListtree_PrevSelected_End ((IPTR)-1)
661 #define MUIV_NListtree_CopyToClip_Active ((IPTR)-1)
664 /*** Hook message structs ***/
666 struct MUIP_NListtree_CloseMessage
668 STACKED ULONG HookID
;
669 STACKED
struct MUI_NListtree_TreeNode
*TreeNode
;
672 struct MUIP_NListtree_CompareMessage
674 STACKED ULONG HookID
;
675 STACKED
struct MUI_NListtree_TreeNode
*TreeNode1
;
676 STACKED
struct MUI_NListtree_TreeNode
*TreeNode2
;
677 STACKED LONG SortType
;
680 struct MUIP_NListtree_ConstructMessage
682 STACKED ULONG HookID
;
684 STACKED APTR UserData
;
685 STACKED APTR MemPool
;
689 struct MUIP_NListtree_DestructMessage
691 STACKED ULONG HookID
;
693 STACKED APTR UserData
;
694 STACKED APTR MemPool
;
698 struct MUIP_NListtree_DisplayMessage
700 STACKED ULONG HookID
;
701 STACKED
struct MUI_NListtree_TreeNode
*TreeNode
;
702 STACKED LONG EntryPos
;
703 STACKED STRPTR
*Array
;
704 STACKED STRPTR
*Preparse
;
707 struct MUIP_NListtree_CopyToClipMessage
709 STACKED ULONG HookID
;
710 STACKED
struct MUI_NListtree_TreeNode
*TreeNode
;
715 struct MUIP_NListtree_FindNameMessage
717 STACKED ULONG HookID
;
719 STACKED STRPTR NodeName
;
720 STACKED APTR UserData
;
724 struct MUIP_NListtree_FindUserDataMessage
726 STACKED ULONG HookID
;
728 STACKED APTR UserData
;
729 STACKED STRPTR NodeName
;
733 struct MUIP_NListtree_OpenMessage
735 STACKED ULONG HookID
;
736 STACKED
struct MUI_NListtree_TreeNode
*TreeNode
;
739 struct MUIP_NListtree_MultiTestMessage
741 STACKED ULONG HookID
;
742 STACKED
struct MUI_NListtree_TreeNode
*TreeNode
;
743 STACKED LONG SelType
;
744 STACKED LONG SelFlags
;
745 STACKED LONG CurrType
;
748 #if !defined(__AROS__) && defined(__PPC__)
749 #if defined(__GNUC__)
751 #elif defined(__VBCC__)
752 #pragma default-align
760 #endif /* NLISTTREE_MCC_H */