home *** CD-ROM | disk | FTP | other *** search
/ CD Actual Thematic 25: Programming / pc_actual_25.iso / C_C++ / VisualProgrammingArmoury / data1.cab / MyFileGroup / INCLUDE / tcTree.h < prev    next >
Encoding:
C/C++ Source or Header  |  1999-06-23  |  5.5 KB  |  197 lines

  1. #define WC_TcTreeCtrl        "TcTreeCtrl"
  2.  
  3. #define WS_TREE_LINES        0x1
  4. #define WS_TREE_BUTTONS        0x2
  5. #define WS_TREE_ROOTLINES    0x4
  6. #define WS_TREE_MULSEL        0x8
  7. #define WS_TREE_AUTO        0x10
  8. #define WS_TREE_EDIT        0x20
  9.  
  10. ////////////////////////////////////////////////////////
  11. typedef struct _TREE_DRAWPARAMS
  12. {
  13.     NMHDR   hdr;
  14.     void *    pItem;
  15.  
  16.     char    text [256];
  17.     BOOL    expanded;
  18.     BOOL    selected;
  19.     unsigned    attr;    // 1-bold, 2-ital, 4-under, 8-strikeout, 16-drop_target
  20. //    BOOL    gray;
  21.     int        img_idx;
  22.     int        my_be_exp;
  23.  
  24.     COLORREF    fColor;
  25.     COLORREF    bColor;
  26.  
  27.     HIMAGELIST    xImgLst[4];
  28.     int            xImgIdx[4];
  29. }
  30. TREE_DRAWPARAMS;
  31.  
  32. typedef struct _TREE_NOTIFY
  33. {
  34.     NMHDR   hdr;
  35.     void *    pItem;
  36.  
  37.     long    arg;
  38. }
  39. TREE_NOTIFY;
  40.  
  41. /*typedef struct _TREE_DRAGDROP
  42. {
  43.     NMHDR   hdr;
  44.     POINT    ms;
  45. }
  46. TREE_DRAGDROP;*/
  47.  
  48. ////////////////////////////////////////////////////////
  49. typedef struct _XTREE_ITEM
  50. {
  51.     DWORD        mask;        // for INSERT or SET
  52.     DWORD        item;
  53.  
  54.         DWORD        attr;
  55.         DWORD        userData;
  56.         long        image;
  57.         COLORREF    fColorN;
  58.         COLORREF    bColorN;
  59.         COLORREF    fColorS;
  60.         COLORREF    bColorS;
  61.  
  62.     char        text [256];
  63. }
  64. XTREE_ITEM;
  65.  
  66. #define XTREE_MASK_FCOLOR_N        (1<<0)
  67. #define XTREE_MASK_BCOLOR_N        (1<<1)
  68. #define XTREE_MASK_FCOLOR_S        (1<<2)
  69. #define XTREE_MASK_BCOLOR_S        (1<<3)
  70.  
  71. #define XTREE_MASK_TEXT            (1<<4)
  72. #define XTREE_MASK_DATA            (1<<5)
  73. #define XTREE_MASK_ATTR            (1<<6)
  74. #define XTREE_MASK_IMAGE        (1<<7)
  75.  
  76. ////////////////////////////////////////////////////////
  77.  
  78. enum
  79. {
  80.     TREE_N_None = -300,
  81.     TREE_N_DrawParams,    //
  82.  
  83.     TREE_N_Change,        //
  84.     TREE_N_GetLevel,    // Return Level
  85.     TREE_N_GetParent,    // Return PTR
  86.     TREE_N_GetCount,    // Return NUM
  87.     TREE_N_GetChild,    // arg=number; Return PTR
  88.     TREE_N_CanMulSel,    // Return BOOL(error)
  89.     TREE_N_Select,        // BOOL(is_sel)
  90.  
  91.     TREE_N_Expanded,    //
  92.     TREE_N_Collapsed,    //
  93.  
  94.     TREE_N_XDelete,        //
  95.     TREE_N_Changing,    // Return ERR
  96.     TREE_N_CanDragDrop,    // --
  97.  
  98.     TREE_N_TryFill,        //
  99.     TREE_N_GetEditText,    // TREE_NOTIFY->arg = char text[256]
  100.     TREE_N_SetEditText,    // TREE_NOTIFY->arg = char text[256]
  101. };
  102.  
  103.  
  104. enum
  105. {
  106. WM_TREE_SETIMAGELIST=(0x1400+1),    // lParam = hImg
  107. WM_TREE_REDRAW,            //
  108.  
  109. WM_TREE_ONINSERT,        // wParam = flags, lParam = (item *)
  110. WM_TREE_ONDELETE,        // wParam = BOOL(draw), lParam = (item *)
  111.  
  112. WM_TREE_GETINDEX,        // lParam = (item *); Return INDEX
  113. WM_TREE_SETPTR,            // wParam = INT(index), lParam = (item *)
  114.  
  115. WM_TREE_GETFOCUSED,        // Return (item *)
  116. WM_TREE_SETFOCUSED,        // wParam = BOOL(keep_sel), lParam = (item *); Return OK
  117. WM_TREE_GETSEL,            // lParam = (item*); Return BOOL
  118. WM_TREE_SETSEL,            // wParam = BOOL(sel), lParam = (item *)
  119.  
  120. WM_TREE_GETSELITEMS,    // wParam = INT(max), lParam = (item **); Return COUNT
  121. WM_TREE_GETITEMRECT,    // wParam = flags, lParam = union {RECT; Item*;}; return OK
  122.  
  123. WM_TREE_COLLAPSE,        // lParam = (item *)
  124. WM_TREE_EXPAND,            // lParam = (item *)
  125. WM_TREE_SETCOLORS,        // lParam = DWORD[8]
  126.  
  127. WM_XTREE_INSERT,        // wParam = index, lParam = (XTREE_ITEM *) // item=PARENT
  128.                         // Return xitem
  129. WM_XTREE_DELETE,        // lParam = (long)xitem
  130. WM_XTREE_SET,            // lParam = (XTREE_ITEM *)
  131. WM_XTREE_GET,            // lParam = (XTREE_ITEM *)
  132. WM_XTREE_CHILD,            // wParam = index, lParam = parent_xitem
  133. WM_XTREE_PARENT,        // lParam = xitem
  134. WM_XTREE_COUNT,            // lParam = xitem
  135.  
  136. WM_TREE_TOPVISUAL,        // Return item*
  137.  
  138. WM_TREE_CLEAR,            //
  139. WM_TREE_EXPAND_ALL,        // lParam = (item *)
  140. WM_TREE_GETBYINDEX,        // wParam = index; Return item*
  141. WM_TREE_ITEMFROMPOINT,    // lParam = MAKELONG(x,y); Return item*
  142.  
  143. WM_TREE_SETEDITMODE,    // wParam = BOOL(mode); lParam = BOOL(apply_end)
  144. WM_TREE_GETEDITMODE,    // return BOOL
  145. };
  146.  
  147. #define TcTree_Redraw(hwnd)                SendMessage(hwnd,WM_TREE_REDRAW,0,0)
  148. #define TcTree_Insert(hwnd,uitem,flg)    SendMessage(hwnd,WM_TREE_ONINSERT,flg,(LPARAM)(uitem))
  149. #define TcTree_Delete(hwnd,uitem,flg)    SendMessage(hwnd,WM_TREE_ONDELETE,flg,(LPARAM)(uitem))
  150. #define TcTree_GetFocused(hwnd)            SendMessage(hwnd,WM_TREE_GETFOCUSED,0,0)
  151. #define TcTree_SetFocused(hwnd,uitem)    SendMessage(hwnd,WM_TREE_SETFOCUSED,0,(LPARAM)(uitem))
  152. #define TcTree_Collapse(hwnd,uitem)        SendMessage(hwnd,WM_TREE_COLLAPSE,0,(LPARAM)(uitem))
  153. #define TcTree_Expand(hwnd,uitem)        SendMessage(hwnd,WM_TREE_EXPAND,0,(LPARAM)(uitem))
  154. #define TcTree_ExpandAll(hwnd,uitem)    SendMessage(hwnd,WM_TREE_EXPAND_ALL,0,(LPARAM)(uitem))
  155. #define TcTree_SetImageList(hwnd,hil)    SendMessage(hwnd,WM_TREE_SETIMAGELIST,0,(LPARAM)(hil))
  156. #define TcTree_Clear(hwnd)                SendMessage(hwnd,WM_TREE_CLEAR,0,0)
  157. #define TcTree_ItemFromPoint(hwnd,x,y)    SendMessage(hwnd,WM_TREE_ITEMFROMPOINT,0,MAKELONG(x,y))
  158.  
  159.  
  160. /*
  161.             PROMOTE / DEMOTE
  162.  
  163. SendMessage( h_Tree, WM_TREE_COLLAPSE, 0, (LPARAM)item );
  164. SendMessage( h_Tree, WM_TREE_ONDELETE, 1, (LPARAM)item );
  165.  
  166. item->Parent->Remove_Child(item);
  167. new_par->Add_Child(item);
  168. item->Parent = new_par;
  169.  
  170. SendMessage( h_Tree, WM_TREE_ONINSERT, 1, (LPARAM)item );
  171. SendMessage( h_Tree, WM_TREE_EXPAND, 0, (LPARAM)new_par );
  172.  
  173. SendMessage( h_Tree, WM_TREE_SETFOCUSED, 0, (LPARAM)item );
  174.  
  175.  
  176.             SWAP
  177.  
  178. int i1 = SendMessage( h_Tree, WM_TREE_GETINDEX, 0, (LPARAM)item1 );
  179. int i2 = SendMessage( h_Tree, WM_TREE_GETINDEX, 0, (LPARAM)item2 );
  180. SendMessage( h_Tree, WM_TREE_SETPTR, i1, (LPARAM)item2 );
  181. SendMessage( h_Tree, WM_TREE_SETPTR, i2, (LPARAM)item1 );
  182.  
  183. item1->Parent->Children.Replace( idx1+0, item2 );
  184. item1->Parent->Children.Replace( idx1+1, item1 );
  185.  
  186. */
  187.  
  188. #define TREE_CIDX_TEXT        0
  189. #define TREE_CIDX_BACK        1
  190. #define TREE_CIDX_STEXT        2
  191. #define TREE_CIDX_SBACK        3
  192. #define TREE_CIDX_STEXT2    4
  193. #define TREE_CIDX_SBACK2    5
  194. #define TREE_CIDX_PLUS        6
  195. #define TREE_CIDX_LINES        7
  196.  
  197.