1 /*
    2 
    3 		MCC_Listtree (c) by kMel, Klaus Melchior
    4 
    5 		Registered class of the Magic User Interface.
    6 
    7 		Listtree_mcc.h
    8 
    9 */
   10 
   11 
   12 /*** Include stuff ***/
   13 
   14 #ifndef LISTTREE_MCC_H
   15 #define LISTTREE_MCC_H
   16 
   17 #ifndef LIBRARIES_MUI_H
   18 #include <libraries/mui.h>
   19 #endif
   20 
   21 #pragma pack(2)
   22 
   23 
   24 /*** MUI Defines ***/
   25 
   26 #define MUIC_Listtree "Listtree.mcc"
   27 #define ListtreeObject MUI_NewObject(MUIC_Listtree
   28 
   29 
   30 
   31 /*** Methods ***/
   32 
   33 #define MUIM_Listtree_Close                0x8002001f
   34 #define MUIM_Listtree_Exchange             0x80020008
   35 #define MUIM_Listtree_FindName             0x8002003c
   36 #define MUIM_Listtree_GetEntry             0x8002002b
   37 #define MUIM_Listtree_GetNr                0x8002000e
   38 #define MUIM_Listtree_Insert               0x80020011
   39 #define MUIM_Listtree_Move                 0x80020009
   40 #define MUIM_Listtree_Open                 0x8002001e
   41 #define MUIM_Listtree_Remove               0x80020012
   42 #define MUIM_Listtree_Rename               0x8002000c
   43 #define MUIM_Listtree_SetDropMark          0x8002004c
   44 #define MUIM_Listtree_Sort                 0x80020029
   45 #define MUIM_Listtree_TestPos              0x8002004b
   46 
   47 /*** Method structs ***/
   48 
   49 struct MUIP_Listtree_Close {
   50 	ULONG MethodID;
   51 	APTR  ListNode;
   52 	APTR  TreeNode;
   53 	ULONG Flags;
   54 };
   55 
   56 struct MUIP_Listtree_Exchange {
   57 	ULONG MethodID;
   58 	APTR  ListNode1;
   59 	APTR  TreeNode1;
   60 	APTR  ListNode2;
   61 	APTR  TreeNode2;
   62 	ULONG Flags;
   63 };
   64 
   65 struct MUIP_Listtree_FindName {
   66 	ULONG MethodID;
   67 	APTR  ListNode;
   68 	char *Name;
   69 	ULONG Flags;
   70 };
   71 
   72 struct MUIP_Listtree_GetEntry {
   73 	ULONG MethodID;
   74 	APTR  Node;
   75 	LONG  Position;
   76 	ULONG Flags;
   77 };
   78 
   79 struct MUIP_Listtree_GetNr {
   80 	ULONG MethodID;
   81 	APTR  TreeNode;
   82 	ULONG Flags;
   83 };
   84 
   85 struct MUIP_Listtree_Insert {
   86 	ULONG MethodID;
   87 	char *Name;
   88 	APTR  User;
   89 	APTR  ListNode;
   90 	APTR  PrevNode;
   91 	ULONG Flags;
   92 };
   93 
   94 struct MUIP_Listtree_Move {
   95 	ULONG MethodID;
   96 	APTR  OldListNode;
   97 	APTR  OldTreeNode;
   98 	APTR  NewListNode;
   99 	APTR  NewTreeNode;
  100 	ULONG Flags;
  101 };
  102 
  103 struct MUIP_Listtree_Open {
  104 	ULONG MethodID;
  105 	APTR  ListNode;
  106 	APTR  TreeNode;
  107 	ULONG Flags;
  108 };
  109 
  110 struct MUIP_Listtree_Remove {
  111 	ULONG MethodID;
  112 	APTR  ListNode;
  113 	APTR  TreeNode;
  114 	ULONG Flags;
  115 };
  116 
  117 struct MUIP_Listtree_Rename {
  118 	ULONG MethodID;
  119 	APTR  TreeNode;
  120 	char *NewName;
  121 	ULONG Flags;
  122 };
  123 
  124 struct MUIP_Listtree_SetDropMark {
  125 	ULONG MethodID;
  126 	LONG  Entry;
  127 	ULONG Values;
  128 };
  129 
  130 struct MUIP_Listtree_Sort {
  131 	ULONG MethodID;
  132 	APTR  ListNode;
  133 	ULONG Flags;
  134 };
  135 
  136 struct MUIP_Listtree_TestPos {
  137 	ULONG MethodID;
  138 	LONG  X;
  139 	LONG  Y;
  140 	APTR  Result;
  141 };
  142 
  143 
  144 /*** Special method values ***/
  145 
  146 #define MUIV_Listtree_Close_ListNode_Root          0
  147 #define MUIV_Listtree_Close_ListNode_Parent       -1
  148 #define MUIV_Listtree_Close_ListNode_Active       -2
  149 
  150 #define MUIV_Listtree_Close_TreeNode_Head          0
  151 #define MUIV_Listtree_Close_TreeNode_Tail         -1
  152 #define MUIV_Listtree_Close_TreeNode_Active       -2
  153 #define MUIV_Listtree_Close_TreeNode_All          -3
  154 
  155 #define MUIV_Listtree_Exchange_ListNode1_Root      0
  156 #define MUIV_Listtree_Exchange_ListNode1_Active   -2
  157 
  158 #define MUIV_Listtree_Exchange_TreeNode1_Head      0
  159 #define MUIV_Listtree_Exchange_TreeNode1_Tail     -1
  160 #define MUIV_Listtree_Exchange_TreeNode1_Active   -2
  161 
  162 #define MUIV_Listtree_Exchange_ListNode2_Root      0
  163 #define MUIV_Listtree_Exchange_ListNode2_Active   -2
  164 
  165 #define MUIV_Listtree_Exchange_TreeNode2_Head      0
  166 #define MUIV_Listtree_Exchange_TreeNode2_Tail     -1
  167 #define MUIV_Listtree_Exchange_TreeNode2_Active   -2
  168 #define MUIV_Listtree_Exchange_TreeNode2_Up       -5
  169 #define MUIV_Listtree_Exchange_TreeNode2_Down     -6
  170 
  171 #define MUIV_Listtree_FindName_ListNode_Root       0
  172 #define MUIV_Listtree_FindName_ListNode_Active    -2
  173 
  174 #define MUIV_Listtree_GetEntry_ListNode_Root       0
  175 #define MUIV_Listtree_GetEntry_ListNode_Active    -2
  176 
  177 #define MUIV_Listtree_GetEntry_Position_Head       0
  178 #define MUIV_Listtree_GetEntry_Position_Tail      -1
  179 #define MUIV_Listtree_GetEntry_Position_Active    -2
  180 #define MUIV_Listtree_GetEntry_Position_Next      -3
  181 #define MUIV_Listtree_GetEntry_Position_Previous  -4
  182 #define MUIV_Listtree_GetEntry_Position_Parent    -5
  183 
  184 #define MUIV_Listtree_GetNr_TreeNode_Active       -2
  185 
  186 #define MUIV_Listtree_Insert_ListNode_Root         0
  187 #define MUIV_Listtree_Insert_ListNode_Active      -2
  188 
  189 #define MUIV_Listtree_Insert_PrevNode_Head         0
  190 #define MUIV_Listtree_Insert_PrevNode_Tail        -1
  191 #define MUIV_Listtree_Insert_PrevNode_Active      -2
  192 #define MUIV_Listtree_Insert_PrevNode_Sorted      -4
  193 
  194 #define MUIV_Listtree_Move_OldListNode_Root        0
  195 #define MUIV_Listtree_Move_OldListNode_Active     -2
  196 
  197 #define MUIV_Listtree_Move_OldTreeNode_Head        0
  198 #define MUIV_Listtree_Move_OldTreeNode_Tail       -1
  199 #define MUIV_Listtree_Move_OldTreeNode_Active     -2
  200 
  201 #define MUIV_Listtree_Move_NewListNode_Root        0
  202 #define MUIV_Listtree_Move_NewListNode_Active     -2
  203 
  204 #define MUIV_Listtree_Move_NewTreeNode_Head        0
  205 #define MUIV_Listtree_Move_NewTreeNode_Tail       -1
  206 #define MUIV_Listtree_Move_NewTreeNode_Active     -2
  207 #define MUIV_Listtree_Move_NewTreeNode_Sorted     -4
  208 
  209 #define MUIV_Listtree_Open_ListNode_Root           0
  210 #define MUIV_Listtree_Open_ListNode_Parent        -1
  211 #define MUIV_Listtree_Open_ListNode_Active        -2
  212 #define MUIV_Listtree_Open_TreeNode_Head           0
  213 #define MUIV_Listtree_Open_TreeNode_Tail          -1
  214 #define MUIV_Listtree_Open_TreeNode_Active        -2
  215 #define MUIV_Listtree_Open_TreeNode_All           -3
  216 
  217 #define MUIV_Listtree_Remove_ListNode_Root         0
  218 #define MUIV_Listtree_Remove_ListNode_Active      -2
  219 #define MUIV_Listtree_Remove_TreeNode_Head         0
  220 #define MUIV_Listtree_Remove_TreeNode_Tail        -1
  221 #define MUIV_Listtree_Remove_TreeNode_Active      -2
  222 #define MUIV_Listtree_Remove_TreeNode_All         -3
  223 
  224 #define MUIV_Listtree_Rename_TreeNode_Active      -2
  225 
  226 #define MUIV_Listtree_SetDropMark_Entry_None      -1
  227 
  228 #define MUIV_Listtree_SetDropMark_Values_None      0
  229 #define MUIV_Listtree_SetDropMark_Values_Above     1
  230 #define MUIV_Listtree_SetDropMark_Values_Below     2
  231 #define MUIV_Listtree_SetDropMark_Values_Onto      3
  232 #define MUIV_Listtree_SetDropMark_Values_Sorted    4
  233 
  234 #define MUIV_Listtree_Sort_ListNode_Root           0
  235 #define MUIV_Listtree_Sort_ListNode_Active        -2
  236 
  237 #define MUIV_Listtree_TestPos_Result_Flags_None    0
  238 #define MUIV_Listtree_TestPos_Result_Flags_Above   1
  239 #define MUIV_Listtree_TestPos_Result_Flags_Below   2
  240 #define MUIV_Listtree_TestPos_Result_Flags_Onto    3
  241 #define MUIV_Listtree_TestPos_Result_Flags_Sorted   4
  242 
  243 
  244 /*** Special method flags ***/
  245 
  246 #define MUIV_Listtree_Close_Flags_Nr             (1<<15)
  247 #define MUIV_Listtree_Close_Flags_Visible        (1<<14)
  248 
  249 #define MUIV_Listtree_FindName_Flags_SameLevel   (1<<15)
  250 #define MUIV_Listtree_FindName_Flags_Visible     (1<<14)
  251 
  252 #define MUIV_Listtree_GetEntry_Flags_SameLevel   (1<<15)
  253 #define MUIV_Listtree_GetEntry_Flags_Visible     (1<<14)
  254 
  255 #define MUIV_Listtree_GetNr_Flags_ListEmpty      (1<<12)
  256 #define MUIV_Listtree_GetNr_Flags_CountList      (1<<13)
  257 #define MUIV_Listtree_GetNr_Flags_CountLevel     (1<<14)
  258 #define MUIV_Listtree_GetNr_Flags_CountAll       (1<<15)
  259 
  260 #define MUIV_Listtree_Insert_Flags_Nr            (1<<15)
  261 #define MUIV_Listtree_Insert_Flags_Visible       (1<<14)
  262 #define MUIV_Listtree_Insert_Flags_Active        (1<<13)
  263 #define MUIV_Listtree_Insert_Flags_NextNode      (1<<12)
  264 
  265 #define MUIV_Listtree_Move_Flags_Nr              (1<<15)
  266 #define MUIV_Listtree_Move_Flags_Visible         (1<<14)
  267 
  268 #define MUIV_Listtree_Open_Flags_Nr              (1<<15)
  269 #define MUIV_Listtree_Open_Flags_Visible         (1<<14)
  270 
  271 #define MUIV_Listtree_Remove_Flags_Nr            (1<<15)
  272 #define MUIV_Listtree_Remove_Flags_Visible       (1<<14)
  273 
  274 #define MUIV_Listtree_Rename_Flags_User          (1<<8)
  275 #define MUIV_Listtree_Rename_Flags_NoRefresh     (1<<9)
  276 
  277 #define MUIV_Listtree_Sort_Flags_Nr              (1<<15)
  278 #define MUIV_Listtree_Sort_Flags_Visible         (1<<14)
  279 
  280 
  281 
  282 /*** Attributes ***/
  283 
  284 #define MUIA_Listtree_Active               0x80020020
  285 #define MUIA_Listtree_CloseHook            0x80020033
  286 #define MUIA_Listtree_ConstructHook        0x80020016
  287 #define MUIA_Listtree_DestructHook         0x80020017
  288 #define MUIA_Listtree_DisplayHook          0x80020018
  289 #define MUIA_Listtree_DoubleClick          0x8002000d
  290 #define MUIA_Listtree_DragDropSort         0x80020031
  291 #define MUIA_Listtree_DuplicateNodeName    0x8002003d
  292 #define MUIA_Listtree_EmptyNodes           0x80020030
  293 #define MUIA_Listtree_Format               0x80020014
  294 #define MUIA_Listtree_MultiSelect          0x800200c3
  295 #define MUIA_Listtree_NList                0x800200c4
  296 #define MUIA_Listtree_OpenHook             0x80020032
  297 #define MUIA_Listtree_Quiet                0x8002000a
  298 #define MUIA_Listtree_SortHook             0x80020010
  299 #define MUIA_Listtree_Title                0x80020015
  300 #define MUIA_Listtree_TreeColumn           0x80020013
  301 
  302 /*** Special attribute values ***/
  303 
  304 #define MUIV_Listtree_Active_Off             0
  305 
  306 #define MUIV_Listtree_ConstructHook_String  -1
  307 
  308 #define MUIV_Listtree_DestructHook_String   -1
  309 
  310 #define MUIV_Listtree_DisplayHook_Default   -1
  311 
  312 #define MUIV_Listtree_DoubleClick_Off       -1
  313 #define MUIV_Listtree_DoubleClick_All       -2
  314 #define MUIV_Listtree_DoubleClick_Tree      -3
  315 
  316 #define MUIV_Listtree_SortHook_Head          0
  317 #define MUIV_Listtree_SortHook_Tail         -1
  318 #define MUIV_Listtree_SortHook_LeavesTop    -2
  319 #define MUIV_Listtree_SortHook_LeavesMixed  -3
  320 #define MUIV_Listtree_SortHook_LeavesBottom  -4
  321 
  322 
  323 
  324 /*** Structures, Flags & Values ***/
  325 
  326 struct MUIS_Listtree_TreeNode {
  327 	LONG  tn_Private1;
  328 	LONG  tn_Private2;
  329 	char *tn_Name;
  330 	UWORD tn_Flags;
  331 	APTR  tn_User;
  332 };
  333 
  334 struct MUIS_Listtree_TestPos_Result {
  335 	APTR  tpr_TreeNode;
  336 	UWORD tpr_Flags;
  337 	LONG  tpr_ListEntry;
  338 	UWORD tpr_ListFlags;
  339 };
  340 
  341 
  342 #define TNF_OPEN   (1<<00)
  343 #define TNF_LIST   (1<<01)
  344 #define TNF_FROZEN (1<<02)
  345 #define TNF_NOSIGN (1<<03)
  346 
  347 
  348 
  349 
  350 /*** Configs ***/
  351 
  352 
  353 #pragma pack()
  354 
  355 #endif /* LISTTREE_MCC_H */
  356 
  357 /* PrMake.rexx 0.10 (16.2.1996) Copyright 1995 kmel, Klaus Melchior */
  358