Merging NList MCC 0.119 into the main branch.
[AROS.git] / workbench / classes / zune / nlist / include / mui / NListtree_mcc.h
blobc65785d29b514c13fb6017978b6ef4741507ae7d
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
19 $Id$
21 ***************************************************************************/
23 /*** Include stuff ***/
25 #ifndef NLISTTREE_MCC_H
26 #define NLISTTREE_MCC_H
28 #ifndef LIBRARIES_MUI_H
29 #include "libraries/mui.h"
30 #endif
32 #ifdef __cplusplus
33 extern "C" {
34 #endif
36 #if !defined(__AROS__) && defined(__PPC__)
37 #if defined(__GNUC__)
38 #pragma pack(2)
39 #elif defined(__VBCC__)
40 #pragma amiga-align
41 #endif
42 #endif
44 /***********************************************************************/
46 // STACKED ensures proper alignment on AROS 64 bit systems
47 #if !defined(__AROS__) && !defined(STACKED)
48 #define STACKED
49 #endif
51 /***********************************************************************/
53 /*** MUI Defines ***/
55 #define MUIC_NListtree "NListtree.mcc"
56 #if defined(__AROS__) && !defined(NO_INLINE_STDARG)
57 #define NListtreeObject MUIOBJMACRO_START(MUIC_NListtree)
58 #else
59 #define NListtreeObject MUI_NewObject(MUIC_NListtree
60 #endif
62 /*** Attributes ***/
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;
175 UWORD tpr_Type;
176 LONG tpr_ListEntry;
177 UWORD tpr_ListFlags;
178 WORD tpr_Column;
182 #define tpr_Flags tpr_Type /* OBSOLETE */
185 /*** Methods ***/
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;
226 STACKED ULONG Flags;
229 struct MUIP_NListtree_Close
231 STACKED ULONG MethodID;
232 STACKED struct MUI_NListtree_TreeNode *ListNode;
233 STACKED struct MUI_NListtree_TreeNode *TreeNode;
234 STACKED ULONG Flags;
237 struct MUIP_NListtree_Insert
239 STACKED ULONG MethodID;
240 STACKED STRPTR Name;
241 STACKED APTR User;
242 STACKED struct MUI_NListtree_TreeNode *ListNode;
243 STACKED struct MUI_NListtree_TreeNode *PrevNode;
244 STACKED ULONG Flags;
247 struct MUIP_NListtree_Remove
249 STACKED ULONG MethodID;
250 STACKED struct MUI_NListtree_TreeNode *ListNode;
251 STACKED struct MUI_NListtree_TreeNode *TreeNode;
252 STACKED ULONG Flags;
255 struct MUIP_NListtree_Clear
257 STACKED ULONG MethodID;
258 STACKED struct MUI_NListtree_TreeNode *ListNode;
259 STACKED ULONG Flags;
262 struct MUIP_NListtree_FindName
264 STACKED ULONG MethodID;
265 STACKED struct MUI_NListtree_TreeNode *ListNode;
266 STACKED STRPTR Name;
267 STACKED ULONG Flags;
270 struct MUIP_NListtree_FindUserData
272 STACKED ULONG MethodID;
273 STACKED struct MUI_NListtree_TreeNode *ListNode;
274 STACKED APTR User;
275 STACKED ULONG Flags;
278 struct MUIP_NListtree_GetEntry
280 STACKED ULONG MethodID;
281 STACKED struct MUI_NListtree_TreeNode *Node;
282 STACKED LONG Position;
283 STACKED ULONG Flags;
286 struct MUIP_NListtree_GetNr
288 STACKED ULONG MethodID;
289 STACKED struct MUI_NListtree_TreeNode *TreeNode;
290 STACKED ULONG Flags;
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;
300 STACKED ULONG Flags;
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;
310 STACKED ULONG Flags;
313 struct MUIP_NListtree_Rename
315 STACKED ULONG MethodID;
316 STACKED struct MUI_NListtree_TreeNode *TreeNode;
317 STACKED STRPTR NewName;
318 STACKED ULONG Flags;
321 struct MUIP_NListtree_Sort
323 STACKED ULONG MethodID;
324 STACKED struct MUI_NListtree_TreeNode *ListNode;
325 STACKED ULONG Flags;
328 struct MUIP_NListtree_TestPos
330 STACKED ULONG MethodID;
331 STACKED LONG X;
332 STACKED LONG Y;
333 STACKED APTR Result;
336 struct MUIP_NListtree_Redraw
338 STACKED ULONG MethodID;
339 STACKED struct MUI_NListtree_TreeNode *TreeNode;
340 STACKED ULONG Flags;
343 struct MUIP_NListtree_Select
345 STACKED ULONG MethodID;
346 STACKED struct MUI_NListtree_TreeNode *TreeNode;
347 STACKED LONG SelType;
348 STACKED LONG SelFlags;
349 STACKED LONG *State;
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;
374 STACKED ULONG Flags;
377 struct MUIP_NListtree_InsertStruct
379 STACKED ULONG MethodID;
380 STACKED STRPTR Name;
381 STACKED APTR User;
382 STACKED STRPTR Delimiter;
383 STACKED ULONG Flags;
386 struct MUIP_NListtree_Active
388 STACKED ULONG MethodID;
389 STACKED LONG Pos;
390 STACKED struct MUI_NListtree_TreeNode *ActiveNode;
393 struct MUIP_NListtree_DoubleClick
395 STACKED ULONG MethodID;
396 STACKED struct MUI_NListtree_TreeNode *TreeNode;
397 STACKED LONG Entry;
398 STACKED LONG Column;
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;
411 STACKED LONG Pos;
412 STACKED LONG Unit;
415 struct MUIP_NListtree_DropType
417 STACKED ULONG MethodID;
418 STACKED LONG *Pos;
419 STACKED LONG *Type;
420 STACKED LONG MinX, MaxX, MinY, MaxY;
421 STACKED LONG MouseX, MouseY;
424 struct MUIP_NListtree_DropDraw
426 STACKED ULONG MethodID;
427 STACKED LONG Pos;
428 STACKED LONG Type;
429 STACKED LONG MinX, MaxX, MinY, MaxY;
432 struct MUIP_NListtree_Construct
434 STACKED ULONG MethodID;
435 STACKED STRPTR Name;
436 STACKED APTR UserData;
437 STACKED APTR MemPool;
438 STACKED ULONG Flags;
441 struct MUIP_NListtree_Destruct
443 STACKED ULONG MethodID;
444 STACKED STRPTR Name;
445 STACKED APTR UserData;
446 STACKED APTR MemPool;
447 STACKED ULONG Flags;
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;
683 STACKED STRPTR Name;
684 STACKED APTR UserData;
685 STACKED APTR MemPool;
686 STACKED ULONG Flags;
689 struct MUIP_NListtree_DestructMessage
691 STACKED ULONG HookID;
692 STACKED STRPTR Name;
693 STACKED APTR UserData;
694 STACKED APTR MemPool;
695 STACKED ULONG Flags;
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;
711 STACKED LONG Pos;
712 STACKED LONG Unit;
715 struct MUIP_NListtree_FindNameMessage
717 STACKED ULONG HookID;
718 STACKED STRPTR Name;
719 STACKED STRPTR NodeName;
720 STACKED APTR UserData;
721 STACKED ULONG Flags;
724 struct MUIP_NListtree_FindUserDataMessage
726 STACKED ULONG HookID;
727 STACKED APTR User;
728 STACKED APTR UserData;
729 STACKED STRPTR NodeName;
730 STACKED ULONG Flags;
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__)
750 #pragma pack()
751 #elif defined(__VBCC__)
752 #pragma default-align
753 #endif
754 #endif
756 #ifdef __cplusplus
758 #endif
760 #endif /* NLISTTREE_MCC_H */