Added xxx_Unregister() functions to all common controls.
[wine] / include / treeview.h
1 /*
2  * Treeview class extra info
3  *
4  * Copyright 1998 Eric Kohl
5  * Copyright 1998 Alex Priem
6  */
7
8 #ifndef __WINE_TREEVIEW_H
9 #define __WINE_TREEVIEW_H
10
11 #define MINIMUM_INDENT 10
12
13
14 #define TVITEM_ALLOC    16
15 #define TV_REFRESH_TIMER 1      
16 #define TV_EDIT_TIMER    2
17 #define TV_REFRESH_TIMER_SET 1  
18 #define TV_EDIT_TIMER_SET 2  
19 #define TV_REFRESH_DELAY 100     /* 100 ms delay between two refreshes */
20 #define TV_DEFAULTITEMHEIGHT 15
21
22 /* internal structures */
23
24 typedef struct {
25     UINT32 mask;
26     HTREEITEM hItem;
27     UINT32 state;
28     UINT32 stateMask;
29     LPSTR pszText;
30     int cchTextMax;
31     int iImage;
32     int iSelectedImage;
33     int cChildren;
34     LPARAM lParam;
35     int iIntegral;
36         int clrText;
37         
38         int parent;         /* handle to parent or 0 if at root*/
39         int firstChild;     /* handle to first child or 0 if no child*/
40         int sibling;        /* handle to next item in list, 0 if last */
41         int upsibling;      /* handle to previous item in list, 0 if first */
42         int visible;
43         RECT32 rect;
44         RECT32 text;
45 } TREEVIEW_ITEM;
46
47
48 #define TV_HSCROLL      0x01    /* treeview too large to fit in window */
49 #define TV_VSCROLL      0x02    /* (horizontal/vertical) */
50
51 typedef struct tagTREEVIEW_INFO
52 {
53     UINT32      uInternalStatus;                
54     INT32       Timer;
55     UINT32  uNumItems;  /* number of valid TREEVIEW_ITEMs */
56     UINT32      uNumPtrsAlloced; 
57     UINT32      uMaxHandle;     /* needed for delete_item */
58     HTREEITEM   TopRootItem;    /* handle to first item in treeview */
59
60         UINT32  uItemHeight;            /* item height, -1 for default item height */
61         UINT32  uRealItemHeight;        /* real item height in pixels */
62         UINT32  uVisibleHeight;     /* visible height of treeview in pixels */
63     UINT32      uTotalHeight;           /* total height of treeview in pixels */
64     UINT32      uIndent;                /* indentation in pixels */
65     HTREEITEM   selectedItem;   /* handle to selected item or 0 if none */
66     HTREEITEM   firstVisible;   /* handle to first visible item */
67     HTREEITEM   dropItem;       /* handle to item selected by drag cursor */
68     INT32       cx,cy;          /* current x/y place in list */
69     COLORREF clrBk;             
70     COLORREF clrText;
71     HFONT32     hFont;
72
73     HIMAGELIST himlNormal;      
74     HIMAGELIST himlState;
75     TREEVIEW_ITEM *items;       /* itemlist */
76     INT32       *freeList;      /* bitmap indicating which elements are valid */
77                                 /* 1=valid, 0=free;     */
78                                 /* size of list= uNumPtrsAlloced/32 */
79
80 } TREEVIEW_INFO;
81
82
83 extern VOID TREEVIEW_Register (VOID);
84 extern VOID TREEVIEW_Unregister (VOID);
85
86 #endif  /* __WINE_TREEVIEW_H */